<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />
<title>boston_housing</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

<style type="text/css">
    /*!
*
* Twitter Bootstrap
*
*/
/*!
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 * Copyright 2011-2016 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background-color: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
mark {
  background: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  box-sizing: content-box;
  height: 0;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .navbar {
    display: none;
  }
  .btn > .caret,
  .dropup > .btn > .caret {
    border-top-color: #000 !important;
  }
  .label {
    border: 1px solid #000;
  }
  .table {
    border-collapse: collapse !important;
  }
  .table td,
  .table th {
    background-color: #fff !important;
  }
  .table-bordered th,
  .table-bordered td {
    border: 1px solid #ddd !important;
  }
}
@font-face {
  font-family: 'Glyphicons Halflings';
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
  position: relative;
  top: 1px;
  display: inline-block;
  font-family: 'Glyphicons Halflings';
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
  content: "\002a";
}
.glyphicon-plus:before {
  content: "\002b";
}
.glyphicon-euro:before,
.glyphicon-eur:before {
  content: "\20ac";
}
.glyphicon-minus:before {
  content: "\2212";
}
.glyphicon-cloud:before {
  content: "\2601";
}
.glyphicon-envelope:before {
  content: "\2709";
}
.glyphicon-pencil:before {
  content: "\270f";
}
.glyphicon-glass:before {
  content: "\e001";
}
.glyphicon-music:before {
  content: "\e002";
}
.glyphicon-search:before {
  content: "\e003";
}
.glyphicon-heart:before {
  content: "\e005";
}
.glyphicon-star:before {
  content: "\e006";
}
.glyphicon-star-empty:before {
  content: "\e007";
}
.glyphicon-user:before {
  content: "\e008";
}
.glyphicon-film:before {
  content: "\e009";
}
.glyphicon-th-large:before {
  content: "\e010";
}
.glyphicon-th:before {
  content: "\e011";
}
.glyphicon-th-list:before {
  content: "\e012";
}
.glyphicon-ok:before {
  content: "\e013";
}
.glyphicon-remove:before {
  content: "\e014";
}
.glyphicon-zoom-in:before {
  content: "\e015";
}
.glyphicon-zoom-out:before {
  content: "\e016";
}
.glyphicon-off:before {
  content: "\e017";
}
.glyphicon-signal:before {
  content: "\e018";
}
.glyphicon-cog:before {
  content: "\e019";
}
.glyphicon-trash:before {
  content: "\e020";
}
.glyphicon-home:before {
  content: "\e021";
}
.glyphicon-file:before {
  content: "\e022";
}
.glyphicon-time:before {
  content: "\e023";
}
.glyphicon-road:before {
  content: "\e024";
}
.glyphicon-download-alt:before {
  content: "\e025";
}
.glyphicon-download:before {
  content: "\e026";
}
.glyphicon-upload:before {
  content: "\e027";
}
.glyphicon-inbox:before {
  content: "\e028";
}
.glyphicon-play-circle:before {
  content: "\e029";
}
.glyphicon-repeat:before {
  content: "\e030";
}
.glyphicon-refresh:before {
  content: "\e031";
}
.glyphicon-list-alt:before {
  content: "\e032";
}
.glyphicon-lock:before {
  content: "\e033";
}
.glyphicon-flag:before {
  content: "\e034";
}
.glyphicon-headphones:before {
  content: "\e035";
}
.glyphicon-volume-off:before {
  content: "\e036";
}
.glyphicon-volume-down:before {
  content: "\e037";
}
.glyphicon-volume-up:before {
  content: "\e038";
}
.glyphicon-qrcode:before {
  content: "\e039";
}
.glyphicon-barcode:before {
  content: "\e040";
}
.glyphicon-tag:before {
  content: "\e041";
}
.glyphicon-tags:before {
  content: "\e042";
}
.glyphicon-book:before {
  content: "\e043";
}
.glyphicon-bookmark:before {
  content: "\e044";
}
.glyphicon-print:before {
  content: "\e045";
}
.glyphicon-camera:before {
  content: "\e046";
}
.glyphicon-font:before {
  content: "\e047";
}
.glyphicon-bold:before {
  content: "\e048";
}
.glyphicon-italic:before {
  content: "\e049";
}
.glyphicon-text-height:before {
  content: "\e050";
}
.glyphicon-text-width:before {
  content: "\e051";
}
.glyphicon-align-left:before {
  content: "\e052";
}
.glyphicon-align-center:before {
  content: "\e053";
}
.glyphicon-align-right:before {
  content: "\e054";
}
.glyphicon-align-justify:before {
  content: "\e055";
}
.glyphicon-list:before {
  content: "\e056";
}
.glyphicon-indent-left:before {
  content: "\e057";
}
.glyphicon-indent-right:before {
  content: "\e058";
}
.glyphicon-facetime-video:before {
  content: "\e059";
}
.glyphicon-picture:before {
  content: "\e060";
}
.glyphicon-map-marker:before {
  content: "\e062";
}
.glyphicon-adjust:before {
  content: "\e063";
}
.glyphicon-tint:before {
  content: "\e064";
}
.glyphicon-edit:before {
  content: "\e065";
}
.glyphicon-share:before {
  content: "\e066";
}
.glyphicon-check:before {
  content: "\e067";
}
.glyphicon-move:before {
  content: "\e068";
}
.glyphicon-step-backward:before {
  content: "\e069";
}
.glyphicon-fast-backward:before {
  content: "\e070";
}
.glyphicon-backward:before {
  content: "\e071";
}
.glyphicon-play:before {
  content: "\e072";
}
.glyphicon-pause:before {
  content: "\e073";
}
.glyphicon-stop:before {
  content: "\e074";
}
.glyphicon-forward:before {
  content: "\e075";
}
.glyphicon-fast-forward:before {
  content: "\e076";
}
.glyphicon-step-forward:before {
  content: "\e077";
}
.glyphicon-eject:before {
  content: "\e078";
}
.glyphicon-chevron-left:before {
  content: "\e079";
}
.glyphicon-chevron-right:before {
  content: "\e080";
}
.glyphicon-plus-sign:before {
  content: "\e081";
}
.glyphicon-minus-sign:before {
  content: "\e082";
}
.glyphicon-remove-sign:before {
  content: "\e083";
}
.glyphicon-ok-sign:before {
  content: "\e084";
}
.glyphicon-question-sign:before {
  content: "\e085";
}
.glyphicon-info-sign:before {
  content: "\e086";
}
.glyphicon-screenshot:before {
  content: "\e087";
}
.glyphicon-remove-circle:before {
  content: "\e088";
}
.glyphicon-ok-circle:before {
  content: "\e089";
}
.glyphicon-ban-circle:before {
  content: "\e090";
}
.glyphicon-arrow-left:before {
  content: "\e091";
}
.glyphicon-arrow-right:before {
  content: "\e092";
}
.glyphicon-arrow-up:before {
  content: "\e093";
}
.glyphicon-arrow-down:before {
  content: "\e094";
}
.glyphicon-share-alt:before {
  content: "\e095";
}
.glyphicon-resize-full:before {
  content: "\e096";
}
.glyphicon-resize-small:before {
  content: "\e097";
}
.glyphicon-exclamation-sign:before {
  content: "\e101";
}
.glyphicon-gift:before {
  content: "\e102";
}
.glyphicon-leaf:before {
  content: "\e103";
}
.glyphicon-fire:before {
  content: "\e104";
}
.glyphicon-eye-open:before {
  content: "\e105";
}
.glyphicon-eye-close:before {
  content: "\e106";
}
.glyphicon-warning-sign:before {
  content: "\e107";
}
.glyphicon-plane:before {
  content: "\e108";
}
.glyphicon-calendar:before {
  content: "\e109";
}
.glyphicon-random:before {
  content: "\e110";
}
.glyphicon-comment:before {
  content: "\e111";
}
.glyphicon-magnet:before {
  content: "\e112";
}
.glyphicon-chevron-up:before {
  content: "\e113";
}
.glyphicon-chevron-down:before {
  content: "\e114";
}
.glyphicon-retweet:before {
  content: "\e115";
}
.glyphicon-shopping-cart:before {
  content: "\e116";
}
.glyphicon-folder-close:before {
  content: "\e117";
}
.glyphicon-folder-open:before {
  content: "\e118";
}
.glyphicon-resize-vertical:before {
  content: "\e119";
}
.glyphicon-resize-horizontal:before {
  content: "\e120";
}
.glyphicon-hdd:before {
  content: "\e121";
}
.glyphicon-bullhorn:before {
  content: "\e122";
}
.glyphicon-bell:before {
  content: "\e123";
}
.glyphicon-certificate:before {
  content: "\e124";
}
.glyphicon-thumbs-up:before {
  content: "\e125";
}
.glyphicon-thumbs-down:before {
  content: "\e126";
}
.glyphicon-hand-right:before {
  content: "\e127";
}
.glyphicon-hand-left:before {
  content: "\e128";
}
.glyphicon-hand-up:before {
  content: "\e129";
}
.glyphicon-hand-down:before {
  content: "\e130";
}
.glyphicon-circle-arrow-right:before {
  content: "\e131";
}
.glyphicon-circle-arrow-left:before {
  content: "\e132";
}
.glyphicon-circle-arrow-up:before {
  content: "\e133";
}
.glyphicon-circle-arrow-down:before {
  content: "\e134";
}
.glyphicon-globe:before {
  content: "\e135";
}
.glyphicon-wrench:before {
  content: "\e136";
}
.glyphicon-tasks:before {
  content: "\e137";
}
.glyphicon-filter:before {
  content: "\e138";
}
.glyphicon-briefcase:before {
  content: "\e139";
}
.glyphicon-fullscreen:before {
  content: "\e140";
}
.glyphicon-dashboard:before {
  content: "\e141";
}
.glyphicon-paperclip:before {
  content: "\e142";
}
.glyphicon-heart-empty:before {
  content: "\e143";
}
.glyphicon-link:before {
  content: "\e144";
}
.glyphicon-phone:before {
  content: "\e145";
}
.glyphicon-pushpin:before {
  content: "\e146";
}
.glyphicon-usd:before {
  content: "\e148";
}
.glyphicon-gbp:before {
  content: "\e149";
}
.glyphicon-sort:before {
  content: "\e150";
}
.glyphicon-sort-by-alphabet:before {
  content: "\e151";
}
.glyphicon-sort-by-alphabet-alt:before {
  content: "\e152";
}
.glyphicon-sort-by-order:before {
  content: "\e153";
}
.glyphicon-sort-by-order-alt:before {
  content: "\e154";
}
.glyphicon-sort-by-attributes:before {
  content: "\e155";
}
.glyphicon-sort-by-attributes-alt:before {
  content: "\e156";
}
.glyphicon-unchecked:before {
  content: "\e157";
}
.glyphicon-expand:before {
  content: "\e158";
}
.glyphicon-collapse-down:before {
  content: "\e159";
}
.glyphicon-collapse-up:before {
  content: "\e160";
}
.glyphicon-log-in:before {
  content: "\e161";
}
.glyphicon-flash:before {
  content: "\e162";
}
.glyphicon-log-out:before {
  content: "\e163";
}
.glyphicon-new-window:before {
  content: "\e164";
}
.glyphicon-record:before {
  content: "\e165";
}
.glyphicon-save:before {
  content: "\e166";
}
.glyphicon-open:before {
  content: "\e167";
}
.glyphicon-saved:before {
  content: "\e168";
}
.glyphicon-import:before {
  content: "\e169";
}
.glyphicon-export:before {
  content: "\e170";
}
.glyphicon-send:before {
  content: "\e171";
}
.glyphicon-floppy-disk:before {
  content: "\e172";
}
.glyphicon-floppy-saved:before {
  content: "\e173";
}
.glyphicon-floppy-remove:before {
  content: "\e174";
}
.glyphicon-floppy-save:before {
  content: "\e175";
}
.glyphicon-floppy-open:before {
  content: "\e176";
}
.glyphicon-credit-card:before {
  content: "\e177";
}
.glyphicon-transfer:before {
  content: "\e178";
}
.glyphicon-cutlery:before {
  content: "\e179";
}
.glyphicon-header:before {
  content: "\e180";
}
.glyphicon-compressed:before {
  content: "\e181";
}
.glyphicon-earphone:before {
  content: "\e182";
}
.glyphicon-phone-alt:before {
  content: "\e183";
}
.glyphicon-tower:before {
  content: "\e184";
}
.glyphicon-stats:before {
  content: "\e185";
}
.glyphicon-sd-video:before {
  content: "\e186";
}
.glyphicon-hd-video:before {
  content: "\e187";
}
.glyphicon-subtitles:before {
  content: "\e188";
}
.glyphicon-sound-stereo:before {
  content: "\e189";
}
.glyphicon-sound-dolby:before {
  content: "\e190";
}
.glyphicon-sound-5-1:before {
  content: "\e191";
}
.glyphicon-sound-6-1:before {
  content: "\e192";
}
.glyphicon-sound-7-1:before {
  content: "\e193";
}
.glyphicon-copyright-mark:before {
  content: "\e194";
}
.glyphicon-registration-mark:before {
  content: "\e195";
}
.glyphicon-cloud-download:before {
  content: "\e197";
}
.glyphicon-cloud-upload:before {
  content: "\e198";
}
.glyphicon-tree-conifer:before {
  content: "\e199";
}
.glyphicon-tree-deciduous:before {
  content: "\e200";
}
.glyphicon-cd:before {
  content: "\e201";
}
.glyphicon-save-file:before {
  content: "\e202";
}
.glyphicon-open-file:before {
  content: "\e203";
}
.glyphicon-level-up:before {
  content: "\e204";
}
.glyphicon-copy:before {
  content: "\e205";
}
.glyphicon-paste:before {
  content: "\e206";
}
.glyphicon-alert:before {
  content: "\e209";
}
.glyphicon-equalizer:before {
  content: "\e210";
}
.glyphicon-king:before {
  content: "\e211";
}
.glyphicon-queen:before {
  content: "\e212";
}
.glyphicon-pawn:before {
  content: "\e213";
}
.glyphicon-bishop:before {
  content: "\e214";
}
.glyphicon-knight:before {
  content: "\e215";
}
.glyphicon-baby-formula:before {
  content: "\e216";
}
.glyphicon-tent:before {
  content: "\26fa";
}
.glyphicon-blackboard:before {
  content: "\e218";
}
.glyphicon-bed:before {
  content: "\e219";
}
.glyphicon-apple:before {
  content: "\f8ff";
}
.glyphicon-erase:before {
  content: "\e221";
}
.glyphicon-hourglass:before {
  content: "\231b";
}
.glyphicon-lamp:before {
  content: "\e223";
}
.glyphicon-duplicate:before {
  content: "\e224";
}
.glyphicon-piggy-bank:before {
  content: "\e225";
}
.glyphicon-scissors:before {
  content: "\e226";
}
.glyphicon-bitcoin:before {
  content: "\e227";
}
.glyphicon-btc:before {
  content: "\e227";
}
.glyphicon-xbt:before {
  content: "\e227";
}
.glyphicon-yen:before {
  content: "\00a5";
}
.glyphicon-jpy:before {
  content: "\00a5";
}
.glyphicon-ruble:before {
  content: "\20bd";
}
.glyphicon-rub:before {
  content: "\20bd";
}
.glyphicon-scale:before {
  content: "\e230";
}
.glyphicon-ice-lolly:before {
  content: "\e231";
}
.glyphicon-ice-lolly-tasted:before {
  content: "\e232";
}
.glyphicon-education:before {
  content: "\e233";
}
.glyphicon-option-horizontal:before {
  content: "\e234";
}
.glyphicon-option-vertical:before {
  content: "\e235";
}
.glyphicon-menu-hamburger:before {
  content: "\e236";
}
.glyphicon-modal-window:before {
  content: "\e237";
}
.glyphicon-oil:before {
  content: "\e238";
}
.glyphicon-grain:before {
  content: "\e239";
}
.glyphicon-sunglasses:before {
  content: "\e240";
}
.glyphicon-text-size:before {
  content: "\e241";
}
.glyphicon-text-color:before {
  content: "\e242";
}
.glyphicon-text-background:before {
  content: "\e243";
}
.glyphicon-object-align-top:before {
  content: "\e244";
}
.glyphicon-object-align-bottom:before {
  content: "\e245";
}
.glyphicon-object-align-horizontal:before {
  content: "\e246";
}
.glyphicon-object-align-left:before {
  content: "\e247";
}
.glyphicon-object-align-vertical:before {
  content: "\e248";
}
.glyphicon-object-align-right:before {
  content: "\e249";
}
.glyphicon-triangle-right:before {
  content: "\e250";
}
.glyphicon-triangle-left:before {
  content: "\e251";
}
.glyphicon-triangle-bottom:before {
  content: "\e252";
}
.glyphicon-triangle-top:before {
  content: "\e253";
}
.glyphicon-console:before {
  content: "\e254";
}
.glyphicon-superscript:before {
  content: "\e255";
}
.glyphicon-subscript:before {
  content: "\e256";
}
.glyphicon-menu-left:before {
  content: "\e257";
}
.glyphicon-menu-right:before {
  content: "\e258";
}
.glyphicon-menu-down:before {
  content: "\e259";
}
.glyphicon-menu-up:before {
  content: "\e260";
}
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
html {
  font-size: 10px;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.42857143;
  color: #000;
  background-color: #fff;
}
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
a {
  color: #337ab7;
  text-decoration: none;
}
a:hover,
a:focus {
  color: #23527c;
  text-decoration: underline;
}
a:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
figure {
  margin: 0;
}
img {
  vertical-align: middle;
}
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  display: block;
  max-width: 100%;
  height: auto;
}
.img-rounded {
  border-radius: 3px;
}
.img-thumbnail {
  padding: 4px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  display: inline-block;
  max-width: 100%;
  height: auto;
}
.img-circle {
  border-radius: 50%;
}
hr {
  margin-top: 18px;
  margin-bottom: 18px;
  border: 0;
  border-top: 1px solid #eeeeee;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
[role="button"] {
  cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: inherit;
  font-weight: 500;
  line-height: 1.1;
  color: inherit;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
  font-weight: normal;
  line-height: 1;
  color: #777777;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
  margin-top: 18px;
  margin-bottom: 9px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
  font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 9px;
  margin-bottom: 9px;
}
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small,
h4 .small,
.h4 .small,
h5 .small,
.h5 .small,
h6 .small,
.h6 .small {
  font-size: 75%;
}
h1,
.h1 {
  font-size: 33px;
}
h2,
.h2 {
  font-size: 27px;
}
h3,
.h3 {
  font-size: 23px;
}
h4,
.h4 {
  font-size: 17px;
}
h5,
.h5 {
  font-size: 13px;
}
h6,
.h6 {
  font-size: 12px;
}
p {
  margin: 0 0 9px;
}
.lead {
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .lead {
    font-size: 19.5px;
  }
}
small,
.small {
  font-size: 92%;
}
mark,
.mark {
  background-color: #fcf8e3;
  padding: .2em;
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
.text-justify {
  text-align: justify;
}
.text-nowrap {
  white-space: nowrap;
}
.text-lowercase {
  text-transform: lowercase;
}
.text-uppercase {
  text-transform: uppercase;
}
.text-capitalize {
  text-transform: capitalize;
}
.text-muted {
  color: #777777;
}
.text-primary {
  color: #337ab7;
}
a.text-primary:hover,
a.text-primary:focus {
  color: #286090;
}
.text-success {
  color: #3c763d;
}
a.text-success:hover,
a.text-success:focus {
  color: #2b542c;
}
.text-info {
  color: #31708f;
}
a.text-info:hover,
a.text-info:focus {
  color: #245269;
}
.text-warning {
  color: #8a6d3b;
}
a.text-warning:hover,
a.text-warning:focus {
  color: #66512c;
}
.text-danger {
  color: #a94442;
}
a.text-danger:hover,
a.text-danger:focus {
  color: #843534;
}
.bg-primary {
  color: #fff;
  background-color: #337ab7;
}
a.bg-primary:hover,
a.bg-primary:focus {
  background-color: #286090;
}
.bg-success {
  background-color: #dff0d8;
}
a.bg-success:hover,
a.bg-success:focus {
  background-color: #c1e2b3;
}
.bg-info {
  background-color: #d9edf7;
}
a.bg-info:hover,
a.bg-info:focus {
  background-color: #afd9ee;
}
.bg-warning {
  background-color: #fcf8e3;
}
a.bg-warning:hover,
a.bg-warning:focus {
  background-color: #f7ecb5;
}
.bg-danger {
  background-color: #f2dede;
}
a.bg-danger:hover,
a.bg-danger:focus {
  background-color: #e4b9b9;
}
.page-header {
  padding-bottom: 8px;
  margin: 36px 0 18px;
  border-bottom: 1px solid #eeeeee;
}
ul,
ol {
  margin-top: 0;
  margin-bottom: 9px;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin-bottom: 0;
}
.list-unstyled {
  padding-left: 0;
  list-style: none;
}
.list-inline {
  padding-left: 0;
  list-style: none;
  margin-left: -5px;
}
.list-inline > li {
  display: inline-block;
  padding-left: 5px;
  padding-right: 5px;
}
dl {
  margin-top: 0;
  margin-bottom: 18px;
}
dt,
dd {
  line-height: 1.42857143;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: 0;
}
@media (min-width: 541px) {
  .dl-horizontal dt {
    float: left;
    width: 160px;
    clear: left;
    text-align: right;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .dl-horizontal dd {
    margin-left: 180px;
  }
}
abbr[title],
abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted #777777;
}
.initialism {
  font-size: 90%;
  text-transform: uppercase;
}
blockquote {
  padding: 9px 18px;
  margin: 0 0 18px;
  font-size: inherit;
  border-left: 5px solid #eeeeee;
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
  margin-bottom: 0;
}
blockquote footer,
blockquote small,
blockquote .small {
  display: block;
  font-size: 80%;
  line-height: 1.42857143;
  color: #777777;
}
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
  content: '\2014 \00A0';
}
.blockquote-reverse,
blockquote.pull-right {
  padding-right: 15px;
  padding-left: 0;
  border-right: 5px solid #eeeeee;
  border-left: 0;
  text-align: right;
}
.blockquote-reverse footer:before,
blockquote.pull-right footer:before,
.blockquote-reverse small:before,
blockquote.pull-right small:before,
.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
  content: '';
}
.blockquote-reverse footer:after,
blockquote.pull-right footer:after,
.blockquote-reverse small:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
  content: '\00A0 \2014';
}
address {
  margin-bottom: 18px;
  font-style: normal;
  line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
  font-family: monospace;
}
code {
  padding: 2px 4px;
  font-size: 90%;
  color: #c7254e;
  background-color: #f9f2f4;
  border-radius: 2px;
}
kbd {
  padding: 2px 4px;
  font-size: 90%;
  color: #888;
  background-color: transparent;
  border-radius: 1px;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
kbd kbd {
  padding: 0;
  font-size: 100%;
  font-weight: bold;
  box-shadow: none;
}
pre {
  display: block;
  padding: 8.5px;
  margin: 0 0 9px;
  font-size: 12px;
  line-height: 1.42857143;
  word-break: break-all;
  word-wrap: break-word;
  color: #333333;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border-radius: 2px;
}
pre code {
  padding: 0;
  font-size: inherit;
  color: inherit;
  white-space: pre-wrap;
  background-color: transparent;
  border-radius: 0;
}
.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}
.container {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
@media (min-width: 768px) {
  .container {
    width: 768px;
  }
}
@media (min-width: 992px) {
  .container {
    width: 940px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1140px;
  }
}
.container-fluid {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
.row {
  margin-left: 0px;
  margin-right: 0px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  position: relative;
  min-height: 1px;
  padding-left: 0px;
  padding-right: 0px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left;
}
.col-xs-12 {
  width: 100%;
}
.col-xs-11 {
  width: 91.66666667%;
}
.col-xs-10 {
  width: 83.33333333%;
}
.col-xs-9 {
  width: 75%;
}
.col-xs-8 {
  width: 66.66666667%;
}
.col-xs-7 {
  width: 58.33333333%;
}
.col-xs-6 {
  width: 50%;
}
.col-xs-5 {
  width: 41.66666667%;
}
.col-xs-4 {
  width: 33.33333333%;
}
.col-xs-3 {
  width: 25%;
}
.col-xs-2 {
  width: 16.66666667%;
}
.col-xs-1 {
  width: 8.33333333%;
}
.col-xs-pull-12 {
  right: 100%;
}
.col-xs-pull-11 {
  right: 91.66666667%;
}
.col-xs-pull-10 {
  right: 83.33333333%;
}
.col-xs-pull-9 {
  right: 75%;
}
.col-xs-pull-8 {
  right: 66.66666667%;
}
.col-xs-pull-7 {
  right: 58.33333333%;
}
.col-xs-pull-6 {
  right: 50%;
}
.col-xs-pull-5 {
  right: 41.66666667%;
}
.col-xs-pull-4 {
  right: 33.33333333%;
}
.col-xs-pull-3 {
  right: 25%;
}
.col-xs-pull-2 {
  right: 16.66666667%;
}
.col-xs-pull-1 {
  right: 8.33333333%;
}
.col-xs-pull-0 {
  right: auto;
}
.col-xs-push-12 {
  left: 100%;
}
.col-xs-push-11 {
  left: 91.66666667%;
}
.col-xs-push-10 {
  left: 83.33333333%;
}
.col-xs-push-9 {
  left: 75%;
}
.col-xs-push-8 {
  left: 66.66666667%;
}
.col-xs-push-7 {
  left: 58.33333333%;
}
.col-xs-push-6 {
  left: 50%;
}
.col-xs-push-5 {
  left: 41.66666667%;
}
.col-xs-push-4 {
  left: 33.33333333%;
}
.col-xs-push-3 {
  left: 25%;
}
.col-xs-push-2 {
  left: 16.66666667%;
}
.col-xs-push-1 {
  left: 8.33333333%;
}
.col-xs-push-0 {
  left: auto;
}
.col-xs-offset-12 {
  margin-left: 100%;
}
.col-xs-offset-11 {
  margin-left: 91.66666667%;
}
.col-xs-offset-10 {
  margin-left: 83.33333333%;
}
.col-xs-offset-9 {
  margin-left: 75%;
}
.col-xs-offset-8 {
  margin-left: 66.66666667%;
}
.col-xs-offset-7 {
  margin-left: 58.33333333%;
}
.col-xs-offset-6 {
  margin-left: 50%;
}
.col-xs-offset-5 {
  margin-left: 41.66666667%;
}
.col-xs-offset-4 {
  margin-left: 33.33333333%;
}
.col-xs-offset-3 {
  margin-left: 25%;
}
.col-xs-offset-2 {
  margin-left: 16.66666667%;
}
.col-xs-offset-1 {
  margin-left: 8.33333333%;
}
.col-xs-offset-0 {
  margin-left: 0%;
}
@media (min-width: 768px) {
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
    float: left;
  }
  .col-sm-12 {
    width: 100%;
  }
  .col-sm-11 {
    width: 91.66666667%;
  }
  .col-sm-10 {
    width: 83.33333333%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-8 {
    width: 66.66666667%;
  }
  .col-sm-7 {
    width: 58.33333333%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-5 {
    width: 41.66666667%;
  }
  .col-sm-4 {
    width: 33.33333333%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-2 {
    width: 16.66666667%;
  }
  .col-sm-1 {
    width: 8.33333333%;
  }
  .col-sm-pull-12 {
    right: 100%;
  }
  .col-sm-pull-11 {
    right: 91.66666667%;
  }
  .col-sm-pull-10 {
    right: 83.33333333%;
  }
  .col-sm-pull-9 {
    right: 75%;
  }
  .col-sm-pull-8 {
    right: 66.66666667%;
  }
  .col-sm-pull-7 {
    right: 58.33333333%;
  }
  .col-sm-pull-6 {
    right: 50%;
  }
  .col-sm-pull-5 {
    right: 41.66666667%;
  }
  .col-sm-pull-4 {
    right: 33.33333333%;
  }
  .col-sm-pull-3 {
    right: 25%;
  }
  .col-sm-pull-2 {
    right: 16.66666667%;
  }
  .col-sm-pull-1 {
    right: 8.33333333%;
  }
  .col-sm-pull-0 {
    right: auto;
  }
  .col-sm-push-12 {
    left: 100%;
  }
  .col-sm-push-11 {
    left: 91.66666667%;
  }
  .col-sm-push-10 {
    left: 83.33333333%;
  }
  .col-sm-push-9 {
    left: 75%;
  }
  .col-sm-push-8 {
    left: 66.66666667%;
  }
  .col-sm-push-7 {
    left: 58.33333333%;
  }
  .col-sm-push-6 {
    left: 50%;
  }
  .col-sm-push-5 {
    left: 41.66666667%;
  }
  .col-sm-push-4 {
    left: 33.33333333%;
  }
  .col-sm-push-3 {
    left: 25%;
  }
  .col-sm-push-2 {
    left: 16.66666667%;
  }
  .col-sm-push-1 {
    left: 8.33333333%;
  }
  .col-sm-push-0 {
    left: auto;
  }
  .col-sm-offset-12 {
    margin-left: 100%;
  }
  .col-sm-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-sm-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-sm-offset-9 {
    margin-left: 75%;
  }
  .col-sm-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-sm-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-sm-offset-6 {
    margin-left: 50%;
  }
  .col-sm-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-sm-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-sm-offset-3 {
    margin-left: 25%;
  }
  .col-sm-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-sm-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-sm-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 992px) {
  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
    float: left;
  }
  .col-md-12 {
    width: 100%;
  }
  .col-md-11 {
    width: 91.66666667%;
  }
  .col-md-10 {
    width: 83.33333333%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-8 {
    width: 66.66666667%;
  }
  .col-md-7 {
    width: 58.33333333%;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-5 {
    width: 41.66666667%;
  }
  .col-md-4 {
    width: 33.33333333%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-2 {
    width: 16.66666667%;
  }
  .col-md-1 {
    width: 8.33333333%;
  }
  .col-md-pull-12 {
    right: 100%;
  }
  .col-md-pull-11 {
    right: 91.66666667%;
  }
  .col-md-pull-10 {
    right: 83.33333333%;
  }
  .col-md-pull-9 {
    right: 75%;
  }
  .col-md-pull-8 {
    right: 66.66666667%;
  }
  .col-md-pull-7 {
    right: 58.33333333%;
  }
  .col-md-pull-6 {
    right: 50%;
  }
  .col-md-pull-5 {
    right: 41.66666667%;
  }
  .col-md-pull-4 {
    right: 33.33333333%;
  }
  .col-md-pull-3 {
    right: 25%;
  }
  .col-md-pull-2 {
    right: 16.66666667%;
  }
  .col-md-pull-1 {
    right: 8.33333333%;
  }
  .col-md-pull-0 {
    right: auto;
  }
  .col-md-push-12 {
    left: 100%;
  }
  .col-md-push-11 {
    left: 91.66666667%;
  }
  .col-md-push-10 {
    left: 83.33333333%;
  }
  .col-md-push-9 {
    left: 75%;
  }
  .col-md-push-8 {
    left: 66.66666667%;
  }
  .col-md-push-7 {
    left: 58.33333333%;
  }
  .col-md-push-6 {
    left: 50%;
  }
  .col-md-push-5 {
    left: 41.66666667%;
  }
  .col-md-push-4 {
    left: 33.33333333%;
  }
  .col-md-push-3 {
    left: 25%;
  }
  .col-md-push-2 {
    left: 16.66666667%;
  }
  .col-md-push-1 {
    left: 8.33333333%;
  }
  .col-md-push-0 {
    left: auto;
  }
  .col-md-offset-12 {
    margin-left: 100%;
  }
  .col-md-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-md-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-md-offset-9 {
    margin-left: 75%;
  }
  .col-md-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-md-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-md-offset-6 {
    margin-left: 50%;
  }
  .col-md-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-md-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-md-offset-3 {
    margin-left: 25%;
  }
  .col-md-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-md-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-md-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 1200px) {
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    float: left;
  }
  .col-lg-12 {
    width: 100%;
  }
  .col-lg-11 {
    width: 91.66666667%;
  }
  .col-lg-10 {
    width: 83.33333333%;
  }
  .col-lg-9 {
    width: 75%;
  }
  .col-lg-8 {
    width: 66.66666667%;
  }
  .col-lg-7 {
    width: 58.33333333%;
  }
  .col-lg-6 {
    width: 50%;
  }
  .col-lg-5 {
    width: 41.66666667%;
  }
  .col-lg-4 {
    width: 33.33333333%;
  }
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-2 {
    width: 16.66666667%;
  }
  .col-lg-1 {
    width: 8.33333333%;
  }
  .col-lg-pull-12 {
    right: 100%;
  }
  .col-lg-pull-11 {
    right: 91.66666667%;
  }
  .col-lg-pull-10 {
    right: 83.33333333%;
  }
  .col-lg-pull-9 {
    right: 75%;
  }
  .col-lg-pull-8 {
    right: 66.66666667%;
  }
  .col-lg-pull-7 {
    right: 58.33333333%;
  }
  .col-lg-pull-6 {
    right: 50%;
  }
  .col-lg-pull-5 {
    right: 41.66666667%;
  }
  .col-lg-pull-4 {
    right: 33.33333333%;
  }
  .col-lg-pull-3 {
    right: 25%;
  }
  .col-lg-pull-2 {
    right: 16.66666667%;
  }
  .col-lg-pull-1 {
    right: 8.33333333%;
  }
  .col-lg-pull-0 {
    right: auto;
  }
  .col-lg-push-12 {
    left: 100%;
  }
  .col-lg-push-11 {
    left: 91.66666667%;
  }
  .col-lg-push-10 {
    left: 83.33333333%;
  }
  .col-lg-push-9 {
    left: 75%;
  }
  .col-lg-push-8 {
    left: 66.66666667%;
  }
  .col-lg-push-7 {
    left: 58.33333333%;
  }
  .col-lg-push-6 {
    left: 50%;
  }
  .col-lg-push-5 {
    left: 41.66666667%;
  }
  .col-lg-push-4 {
    left: 33.33333333%;
  }
  .col-lg-push-3 {
    left: 25%;
  }
  .col-lg-push-2 {
    left: 16.66666667%;
  }
  .col-lg-push-1 {
    left: 8.33333333%;
  }
  .col-lg-push-0 {
    left: auto;
  }
  .col-lg-offset-12 {
    margin-left: 100%;
  }
  .col-lg-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-lg-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-lg-offset-9 {
    margin-left: 75%;
  }
  .col-lg-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-lg-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-lg-offset-6 {
    margin-left: 50%;
  }
  .col-lg-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-lg-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-lg-offset-3 {
    margin-left: 25%;
  }
  .col-lg-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-lg-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-lg-offset-0 {
    margin-left: 0%;
  }
}
table {
  background-color: transparent;
}
caption {
  padding-top: 8px;
  padding-bottom: 8px;
  color: #777777;
  text-align: left;
}
th {
  text-align: left;
}
.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 18px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #ddd;
}
.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
  border-top: 0;
}
.table > tbody + tbody {
  border-top: 2px solid #ddd;
}
.table .table {
  background-color: #fff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
  padding: 5px;
}
.table-bordered {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
  border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
  background-color: #f5f5f5;
}
table col[class*="col-"] {
  position: static;
  float: none;
  display: table-column;
}
table td[class*="col-"],
table th[class*="col-"] {
  position: static;
  float: none;
  display: table-cell;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
  background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
  background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
  background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
  background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
  background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
  background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
  background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
  background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
  background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
  background-color: #ebcccc;
}
.table-responsive {
  overflow-x: auto;
  min-height: 0.01%;
}
@media screen and (max-width: 767px) {
  .table-responsive {
    width: 100%;
    margin-bottom: 13.5px;
    overflow-y: hidden;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    border: 1px solid #ddd;
  }
  .table-responsive > .table {
    margin-bottom: 0;
  }
  .table-responsive > .table > thead > tr > th,
  .table-responsive > .table > tbody > tr > th,
  .table-responsive > .table > tfoot > tr > th,
  .table-responsive > .table > thead > tr > td,
  .table-responsive > .table > tbody > tr > td,
  .table-responsive > .table > tfoot > tr > td {
    white-space: nowrap;
  }
  .table-responsive > .table-bordered {
    border: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:first-child,
  .table-responsive > .table-bordered > tbody > tr > th:first-child,
  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  .table-responsive > .table-bordered > thead > tr > td:first-child,
  .table-responsive > .table-bordered > tbody > tr > td:first-child,
  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
    border-left: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:last-child,
  .table-responsive > .table-bordered > tbody > tr > th:last-child,
  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  .table-responsive > .table-bordered > thead > tr > td:last-child,
  .table-responsive > .table-bordered > tbody > tr > td:last-child,
  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
    border-right: 0;
  }
  .table-responsive > .table-bordered > tbody > tr:last-child > th,
  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
  .table-responsive > .table-bordered > tbody > tr:last-child > td,
  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
    border-bottom: 0;
  }
}
fieldset {
  padding: 0;
  margin: 0;
  border: 0;
  min-width: 0;
}
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 18px;
  font-size: 19.5px;
  line-height: inherit;
  color: #333333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}
label {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 5px;
  font-weight: bold;
}
input[type="search"] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  margin-top: 1px \9;
  line-height: normal;
}
input[type="file"] {
  display: block;
}
input[type="range"] {
  display: block;
  width: 100%;
}
select[multiple],
select[size] {
  height: auto;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
output {
  display: block;
  padding-top: 7px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
}
.form-control {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.form-control:-ms-input-placeholder {
  color: #999;
}
.form-control::-webkit-input-placeholder {
  color: #999;
}
.form-control::-ms-expand {
  border: 0;
  background-color: transparent;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  background-color: #eeeeee;
  opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
  cursor: not-allowed;
}
textarea.form-control {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  input[type="date"].form-control,
  input[type="time"].form-control,
  input[type="datetime-local"].form-control,
  input[type="month"].form-control {
    line-height: 32px;
  }
  input[type="date"].input-sm,
  input[type="time"].input-sm,
  input[type="datetime-local"].input-sm,
  input[type="month"].input-sm,
  .input-group-sm input[type="date"],
  .input-group-sm input[type="time"],
  .input-group-sm input[type="datetime-local"],
  .input-group-sm input[type="month"] {
    line-height: 30px;
  }
  input[type="date"].input-lg,
  input[type="time"].input-lg,
  input[type="datetime-local"].input-lg,
  input[type="month"].input-lg,
  .input-group-lg input[type="date"],
  .input-group-lg input[type="time"],
  .input-group-lg input[type="datetime-local"],
  .input-group-lg input[type="month"] {
    line-height: 45px;
  }
}
.form-group {
  margin-bottom: 15px;
}
.radio,
.checkbox {
  position: relative;
  display: block;
  margin-top: 10px;
  margin-bottom: 10px;
}
.radio label,
.checkbox label {
  min-height: 18px;
  padding-left: 20px;
  margin-bottom: 0;
  font-weight: normal;
  cursor: pointer;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
  position: absolute;
  margin-left: -20px;
  margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px;
}
.radio-inline,
.checkbox-inline {
  position: relative;
  display: inline-block;
  padding-left: 20px;
  margin-bottom: 0;
  vertical-align: middle;
  font-weight: normal;
  cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
  margin-top: 0;
  margin-left: 10px;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"].disabled,
input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
  cursor: not-allowed;
}
.radio-inline.disabled,
.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
  cursor: not-allowed;
}
.radio.disabled label,
.checkbox.disabled label,
fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
  cursor: not-allowed;
}
.form-control-static {
  padding-top: 7px;
  padding-bottom: 7px;
  margin-bottom: 0;
  min-height: 31px;
}
.form-control-static.input-lg,
.form-control-static.input-sm {
  padding-left: 0;
  padding-right: 0;
}
.input-sm {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-sm {
  height: 30px;
  line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
  height: auto;
}
.form-group-sm .form-control {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.form-group-sm select.form-control {
  height: 30px;
  line-height: 30px;
}
.form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control {
  height: auto;
}
.form-group-sm .form-control-static {
  height: 30px;
  min-height: 30px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.input-lg {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-lg {
  height: 45px;
  line-height: 45px;
}
textarea.input-lg,
select[multiple].input-lg {
  height: auto;
}
.form-group-lg .form-control {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.form-group-lg select.form-control {
  height: 45px;
  line-height: 45px;
}
.form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control {
  height: auto;
}
.form-group-lg .form-control-static {
  height: 45px;
  min-height: 35px;
  padding: 11px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.has-feedback {
  position: relative;
}
.has-feedback .form-control {
  padding-right: 40px;
}
.form-control-feedback {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: block;
  width: 32px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
  width: 45px;
  height: 45px;
  line-height: 45px;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
  color: #3c763d;
}
.has-success .form-control {
  border-color: #3c763d;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-success .form-control:focus {
  border-color: #2b542c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
  color: #3c763d;
  border-color: #3c763d;
  background-color: #dff0d8;
}
.has-success .form-control-feedback {
  color: #3c763d;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
  color: #8a6d3b;
}
.has-warning .form-control {
  border-color: #8a6d3b;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-warning .form-control:focus {
  border-color: #66512c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
  color: #8a6d3b;
  border-color: #8a6d3b;
  background-color: #fcf8e3;
}
.has-warning .form-control-feedback {
  color: #8a6d3b;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
  color: #a94442;
}
.has-error .form-control {
  border-color: #a94442;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .form-control:focus {
  border-color: #843534;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
  color: #a94442;
  border-color: #a94442;
  background-color: #f2dede;
}
.has-error .form-control-feedback {
  color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
  top: 23px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
  top: 0;
}
.help-block {
  display: block;
  margin-top: 5px;
  margin-bottom: 10px;
  color: #404040;
}
@media (min-width: 768px) {
  .form-inline .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-static {
    display: inline-block;
  }
  .form-inline .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .form-inline .input-group .input-group-addon,
  .form-inline .input-group .input-group-btn,
  .form-inline .input-group .form-control {
    width: auto;
  }
  .form-inline .input-group > .form-control {
    width: 100%;
  }
  .form-inline .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio,
  .form-inline .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio label,
  .form-inline .checkbox label {
    padding-left: 0;
  }
  .form-inline .radio input[type="radio"],
  .form-inline .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .form-inline .has-feedback .form-control-feedback {
    top: 0;
  }
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 7px;
}
.form-horizontal .radio,
.form-horizontal .checkbox {
  min-height: 25px;
}
.form-horizontal .form-group {
  margin-left: 0px;
  margin-right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .control-label {
    text-align: right;
    margin-bottom: 0;
    padding-top: 7px;
  }
}
.form-horizontal .has-feedback .form-control-feedback {
  right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .form-group-lg .control-label {
    padding-top: 11px;
    font-size: 17px;
  }
}
@media (min-width: 768px) {
  .form-horizontal .form-group-sm .control-label {
    padding-top: 6px;
    font-size: 12px;
  }
}
.btn {
  display: inline-block;
  margin-bottom: 0;
  font-weight: normal;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  border-radius: 2px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
  color: #333;
  text-decoration: none;
}
.btn:active,
.btn.active {
  outline: 0;
  background-image: none;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
  cursor: not-allowed;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
  box-shadow: none;
}
a.btn.disabled,
fieldset[disabled] a.btn {
  pointer-events: none;
}
.btn-default {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.btn-default:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  background-image: none;
}
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus {
  background-color: #fff;
  border-color: #ccc;
}
.btn-default .badge {
  color: #fff;
  background-color: #333;
}
.btn-primary {
  color: #fff;
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #286090;
  border-color: #122b40;
}
.btn-primary:hover {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
  color: #fff;
  background-color: #204d74;
  border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background-image: none;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary .badge {
  color: #337ab7;
  background-color: #fff;
}
.btn-success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success:focus,
.btn-success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.btn-success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active:hover,
.btn-success.active:hover,
.open > .dropdown-toggle.btn-success:hover,
.btn-success:active:focus,
.btn-success.active:focus,
.open > .dropdown-toggle.btn-success:focus,
.btn-success:active.focus,
.btn-success.active.focus,
.open > .dropdown-toggle.btn-success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  background-image: none;
}
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.btn-info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info:focus,
.btn-info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.btn-info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  background-image: none;
}
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.btn-warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning:focus,
.btn-warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.btn-warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active:hover,
.btn-warning.active:hover,
.open > .dropdown-toggle.btn-warning:hover,
.btn-warning:active:focus,
.btn-warning.active:focus,
.open > .dropdown-toggle.btn-warning:focus,
.btn-warning:active.focus,
.btn-warning.active.focus,
.open > .dropdown-toggle.btn-warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  background-image: none;
}
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.btn-danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger:focus,
.btn-danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.btn-danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active:hover,
.btn-danger.active:hover,
.open > .dropdown-toggle.btn-danger:hover,
.btn-danger:active:focus,
.btn-danger.active:focus,
.open > .dropdown-toggle.btn-danger:focus,
.btn-danger:active.focus,
.btn-danger.active.focus,
.open > .dropdown-toggle.btn-danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  background-image: none;
}
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger .badge {
  color: #d9534f;
  background-color: #fff;
}
.btn-link {
  color: #337ab7;
  font-weight: normal;
  border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
  background-color: transparent;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
  border-color: transparent;
}
.btn-link:hover,
.btn-link:focus {
  color: #23527c;
  text-decoration: underline;
  background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
  color: #777777;
  text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.btn-sm,
.btn-group-sm > .btn {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-xs,
.btn-group-xs > .btn {
  padding: 1px 5px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-block {
  display: block;
  width: 100%;
}
.btn-block + .btn-block {
  margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
  width: 100%;
}
.fade {
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  -o-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear;
}
.fade.in {
  opacity: 1;
}
.collapse {
  display: none;
}
.collapse.in {
  display: block;
}
tr.collapse.in {
  display: table-row;
}
tbody.collapse.in {
  display: table-row-group;
}
.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition-property: height, visibility;
  transition-property: height, visibility;
  -webkit-transition-duration: 0.35s;
  transition-duration: 0.35s;
  -webkit-transition-timing-function: ease;
  transition-timing-function: ease;
}
.caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px dashed;
  border-top: 4px solid \9;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}
.dropup,
.dropdown {
  position: relative;
}
.dropdown-toggle:focus {
  outline: 0;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0;
  list-style: none;
  font-size: 13px;
  text-align: left;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 2px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  background-clip: padding-box;
}
.dropdown-menu.pull-right {
  right: 0;
  left: auto;
}
.dropdown-menu .divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.dropdown-menu > li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 1.42857143;
  color: #333333;
  white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  text-decoration: none;
  color: #262626;
  background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  color: #fff;
  text-decoration: none;
  outline: 0;
  background-color: #337ab7;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  color: #777777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  text-decoration: none;
  background-color: transparent;
  background-image: none;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  cursor: not-allowed;
}
.open > .dropdown-menu {
  display: block;
}
.open > a {
  outline: 0;
}
.dropdown-menu-right {
  left: auto;
  right: 0;
}
.dropdown-menu-left {
  left: 0;
  right: auto;
}
.dropdown-header {
  display: block;
  padding: 3px 20px;
  font-size: 12px;
  line-height: 1.42857143;
  color: #777777;
  white-space: nowrap;
}
.dropdown-backdrop {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  z-index: 990;
}
.pull-right > .dropdown-menu {
  right: 0;
  left: auto;
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
  border-top: 0;
  border-bottom: 4px dashed;
  border-bottom: 4px solid \9;
  content: "";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 2px;
}
@media (min-width: 541px) {
  .navbar-right .dropdown-menu {
    left: auto;
    right: 0;
  }
  .navbar-right .dropdown-menu-left {
    left: 0;
    right: auto;
  }
}
.btn-group,
.btn-group-vertical {
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
  position: relative;
  float: left;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
  z-index: 2;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
  margin-left: -1px;
}
.btn-toolbar {
  margin-left: -5px;
}
.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
  float: left;
}
.btn-toolbar > .btn,
.btn-toolbar > .btn-group,
.btn-toolbar > .input-group {
  margin-left: 5px;
}
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
  border-radius: 0;
}
.btn-group > .btn:first-child {
  margin-left: 0;
}
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group > .btn-group {
  float: left;
}
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
  outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
  padding-left: 8px;
  padding-right: 8px;
}
.btn-group > .btn-lg + .dropdown-toggle {
  padding-left: 12px;
  padding-right: 12px;
}
.btn-group.open .dropdown-toggle {
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn-group.open .dropdown-toggle.btn-link {
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn .caret {
  margin-left: 0;
}
.btn-lg .caret {
  border-width: 5px 5px 0;
  border-bottom-width: 0;
}
.dropup .btn-lg .caret {
  border-width: 0 5px 5px;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
}
.btn-group-vertical > .btn-group > .btn {
  float: none;
}
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
  margin-top: -1px;
  margin-left: 0;
}
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.btn-group-vertical > .btn:first-child:not(:last-child) {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.btn-group-justified {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
}
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
  float: none;
  display: table-cell;
  width: 1%;
}
.btn-group-justified > .btn-group .btn {
  width: 100%;
}
.btn-group-justified > .btn-group .dropdown-menu {
  left: auto;
}
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  pointer-events: none;
}
.input-group {
  position: relative;
  display: table;
  border-collapse: separate;
}
.input-group[class*="col-"] {
  float: none;
  padding-left: 0;
  padding-right: 0;
}
.input-group .form-control {
  position: relative;
  z-index: 2;
  float: left;
  width: 100%;
  margin-bottom: 0;
}
.input-group .form-control:focus {
  z-index: 3;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  line-height: 45px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
  height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  line-height: 30px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
  height: auto;
}
.input-group-addon,
.input-group-btn,
.input-group .form-control {
  display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.input-group-addon,
.input-group-btn {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}
.input-group-addon {
  padding: 6px 12px;
  font-size: 13px;
  font-weight: normal;
  line-height: 1;
  color: #555555;
  text-align: center;
  background-color: #eeeeee;
  border: 1px solid #ccc;
  border-radius: 2px;
}
.input-group-addon.input-sm {
  padding: 5px 10px;
  font-size: 12px;
  border-radius: 1px;
}
.input-group-addon.input-lg {
  padding: 10px 16px;
  font-size: 17px;
  border-radius: 3px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
  margin-top: 0;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.input-group-addon:first-child {
  border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.input-group-addon:last-child {
  border-left: 0;
}
.input-group-btn {
  position: relative;
  font-size: 0;
  white-space: nowrap;
}
.input-group-btn > .btn {
  position: relative;
}
.input-group-btn > .btn + .btn {
  margin-left: -1px;
}
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
  z-index: 2;
}
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group {
  margin-right: -1px;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
  z-index: 2;
  margin-left: -1px;
}
.nav {
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
}
.nav > li {
  position: relative;
  display: block;
}
.nav > li > a {
  position: relative;
  display: block;
  padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.nav > li.disabled > a {
  color: #777777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
  color: #777777;
  text-decoration: none;
  background-color: transparent;
  cursor: not-allowed;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
  background-color: #eeeeee;
  border-color: #337ab7;
}
.nav .nav-divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.nav > li > a > img {
  max-width: none;
}
.nav-tabs {
  border-bottom: 1px solid #ddd;
}
.nav-tabs > li {
  float: left;
  margin-bottom: -1px;
}
.nav-tabs > li > a {
  margin-right: 2px;
  line-height: 1.42857143;
  border: 1px solid transparent;
  border-radius: 2px 2px 0 0;
}
.nav-tabs > li > a:hover {
  border-color: #eeeeee #eeeeee #ddd;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: #555555;
  background-color: #fff;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
  cursor: default;
}
.nav-tabs.nav-justified {
  width: 100%;
  border-bottom: 0;
}
.nav-tabs.nav-justified > li {
  float: none;
}
.nav-tabs.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-tabs.nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs.nav-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs.nav-justified > .active > a,
  .nav-tabs.nav-justified > .active > a:hover,
  .nav-tabs.nav-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.nav-pills > li {
  float: left;
}
.nav-pills > li > a {
  border-radius: 2px;
}
.nav-pills > li + li {
  margin-left: 2px;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
  color: #fff;
  background-color: #337ab7;
}
.nav-stacked > li {
  float: none;
}
.nav-stacked > li + li {
  margin-top: 2px;
  margin-left: 0;
}
.nav-justified {
  width: 100%;
}
.nav-justified > li {
  float: none;
}
.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs-justified {
  border-bottom: 0;
}
.nav-tabs-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs-justified > .active > a,
  .nav-tabs-justified > .active > a:hover,
  .nav-tabs-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}
.nav-tabs .dropdown-menu {
  margin-top: -1px;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar {
  position: relative;
  min-height: 30px;
  margin-bottom: 18px;
  border: 1px solid transparent;
}
@media (min-width: 541px) {
  .navbar {
    border-radius: 2px;
  }
}
@media (min-width: 541px) {
  .navbar-header {
    float: left;
  }
}
.navbar-collapse {
  overflow-x: visible;
  padding-right: 0px;
  padding-left: 0px;
  border-top: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  -webkit-overflow-scrolling: touch;
}
.navbar-collapse.in {
  overflow-y: auto;
}
@media (min-width: 541px) {
  .navbar-collapse {
    width: auto;
    border-top: 0;
    box-shadow: none;
  }
  .navbar-collapse.collapse {
    display: block !important;
    height: auto !important;
    padding-bottom: 0;
    overflow: visible !important;
  }
  .navbar-collapse.in {
    overflow-y: visible;
  }
  .navbar-fixed-top .navbar-collapse,
  .navbar-static-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    padding-left: 0;
    padding-right: 0;
  }
}
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
  max-height: 340px;
}
@media (max-device-width: 540px) and (orientation: landscape) {
  .navbar-fixed-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    max-height: 200px;
  }
}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
  margin-right: 0px;
  margin-left: 0px;
}
@media (min-width: 541px) {
  .container > .navbar-header,
  .container-fluid > .navbar-header,
  .container > .navbar-collapse,
  .container-fluid > .navbar-collapse {
    margin-right: 0;
    margin-left: 0;
  }
}
.navbar-static-top {
  z-index: 1000;
  border-width: 0 0 1px;
}
@media (min-width: 541px) {
  .navbar-static-top {
    border-radius: 0;
  }
}
.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: 1030;
}
@media (min-width: 541px) {
  .navbar-fixed-top,
  .navbar-fixed-bottom {
    border-radius: 0;
  }
}
.navbar-fixed-top {
  top: 0;
  border-width: 0 0 1px;
}
.navbar-fixed-bottom {
  bottom: 0;
  margin-bottom: 0;
  border-width: 1px 0 0;
}
.navbar-brand {
  float: left;
  padding: 6px 0px;
  font-size: 17px;
  line-height: 18px;
  height: 30px;
}
.navbar-brand:hover,
.navbar-brand:focus {
  text-decoration: none;
}
.navbar-brand > img {
  display: block;
}
@media (min-width: 541px) {
  .navbar > .container .navbar-brand,
  .navbar > .container-fluid .navbar-brand {
    margin-left: 0px;
  }
}
.navbar-toggle {
  position: relative;
  float: right;
  margin-right: 0px;
  padding: 9px 10px;
  margin-top: -2px;
  margin-bottom: -2px;
  background-color: transparent;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 2px;
}
.navbar-toggle:focus {
  outline: 0;
}
.navbar-toggle .icon-bar {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar {
  margin-top: 4px;
}
@media (min-width: 541px) {
  .navbar-toggle {
    display: none;
  }
}
.navbar-nav {
  margin: 3px 0px;
}
.navbar-nav > li > a {
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 18px;
}
@media (max-width: 540px) {
  .navbar-nav .open .dropdown-menu {
    position: static;
    float: none;
    width: auto;
    margin-top: 0;
    background-color: transparent;
    border: 0;
    box-shadow: none;
  }
  .navbar-nav .open .dropdown-menu > li > a,
  .navbar-nav .open .dropdown-menu .dropdown-header {
    padding: 5px 15px 5px 25px;
  }
  .navbar-nav .open .dropdown-menu > li > a {
    line-height: 18px;
  }
  .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-nav .open .dropdown-menu > li > a:focus {
    background-image: none;
  }
}
@media (min-width: 541px) {
  .navbar-nav {
    float: left;
    margin: 0;
  }
  .navbar-nav > li {
    float: left;
  }
  .navbar-nav > li > a {
    padding-top: 6px;
    padding-bottom: 6px;
  }
}
.navbar-form {
  margin-left: 0px;
  margin-right: 0px;
  padding: 10px 0px;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  margin-top: -1px;
  margin-bottom: -1px;
}
@media (min-width: 768px) {
  .navbar-form .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .navbar-form .form-control-static {
    display: inline-block;
  }
  .navbar-form .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .navbar-form .input-group .input-group-addon,
  .navbar-form .input-group .input-group-btn,
  .navbar-form .input-group .form-control {
    width: auto;
  }
  .navbar-form .input-group > .form-control {
    width: 100%;
  }
  .navbar-form .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio,
  .navbar-form .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio label,
  .navbar-form .checkbox label {
    padding-left: 0;
  }
  .navbar-form .radio input[type="radio"],
  .navbar-form .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .navbar-form .has-feedback .form-control-feedback {
    top: 0;
  }
}
@media (max-width: 540px) {
  .navbar-form .form-group {
    margin-bottom: 5px;
  }
  .navbar-form .form-group:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 541px) {
  .navbar-form {
    width: auto;
    border: 0;
    margin-left: 0;
    margin-right: 0;
    padding-top: 0;
    padding-bottom: 0;
    -webkit-box-shadow: none;
    box-shadow: none;
  }
}
.navbar-nav > li > .dropdown-menu {
  margin-top: 0;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
  margin-bottom: 0;
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.navbar-btn {
  margin-top: -1px;
  margin-bottom: -1px;
}
.navbar-btn.btn-sm {
  margin-top: 0px;
  margin-bottom: 0px;
}
.navbar-btn.btn-xs {
  margin-top: 4px;
  margin-bottom: 4px;
}
.navbar-text {
  margin-top: 6px;
  margin-bottom: 6px;
}
@media (min-width: 541px) {
  .navbar-text {
    float: left;
    margin-left: 0px;
    margin-right: 0px;
  }
}
@media (min-width: 541px) {
  .navbar-left {
    float: left !important;
    float: left;
  }
  .navbar-right {
    float: right !important;
    float: right;
    margin-right: 0px;
  }
  .navbar-right ~ .navbar-right {
    margin-right: 0;
  }
}
.navbar-default {
  background-color: #f8f8f8;
  border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
  color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
  color: #5e5e5e;
  background-color: transparent;
}
.navbar-default .navbar-text {
  color: #777;
}
.navbar-default .navbar-nav > li > a {
  color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
  color: #333;
  background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  color: #555;
  background-color: #e7e7e7;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
  color: #ccc;
  background-color: transparent;
}
.navbar-default .navbar-toggle {
  border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
  background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
  background-color: #888;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
  border-color: #e7e7e7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
  background-color: #e7e7e7;
  color: #555;
}
@media (max-width: 540px) {
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
    color: #777;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #333;
    background-color: transparent;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #555;
    background-color: #e7e7e7;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #ccc;
    background-color: transparent;
  }
}
.navbar-default .navbar-link {
  color: #777;
}
.navbar-default .navbar-link:hover {
  color: #333;
}
.navbar-default .btn-link {
  color: #777;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
  color: #333;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
  color: #ccc;
}
.navbar-inverse {
  background-color: #222;
  border-color: #080808;
}
.navbar-inverse .navbar-brand {
  color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-text {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
  color: #fff;
  background-color: #080808;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
  color: #444;
  background-color: transparent;
}
.navbar-inverse .navbar-toggle {
  border-color: #333;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
  background-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
  background-color: #fff;
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
  border-color: #101010;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
  background-color: #080808;
  color: #fff;
}
@media (max-width: 540px) {
  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
    border-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
    color: #9d9d9d;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #fff;
    background-color: transparent;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #fff;
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #444;
    background-color: transparent;
  }
}
.navbar-inverse .navbar-link {
  color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
  color: #fff;
}
.navbar-inverse .btn-link {
  color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
  color: #fff;
}
.navbar-inverse .btn-link[disabled]:hover,
fieldset[disabled] .navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link[disabled]:focus,
fieldset[disabled] .navbar-inverse .btn-link:focus {
  color: #444;
}
.breadcrumb {
  padding: 8px 15px;
  margin-bottom: 18px;
  list-style: none;
  background-color: #f5f5f5;
  border-radius: 2px;
}
.breadcrumb > li {
  display: inline-block;
}
.breadcrumb > li + li:before {
  content: "/\00a0";
  padding: 0 5px;
  color: #5e5e5e;
}
.breadcrumb > .active {
  color: #777777;
}
.pagination {
  display: inline-block;
  padding-left: 0;
  margin: 18px 0;
  border-radius: 2px;
}
.pagination > li {
  display: inline;
}
.pagination > li > a,
.pagination > li > span {
  position: relative;
  float: left;
  padding: 6px 12px;
  line-height: 1.42857143;
  text-decoration: none;
  color: #337ab7;
  background-color: #fff;
  border: 1px solid #ddd;
  margin-left: -1px;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
  margin-left: 0;
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
  border-bottom-right-radius: 2px;
  border-top-right-radius: 2px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
  z-index: 2;
  color: #23527c;
  background-color: #eeeeee;
  border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
  z-index: 3;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
  cursor: default;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
  color: #777777;
  background-color: #fff;
  border-color: #ddd;
  cursor: not-allowed;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}
.pagination-sm > li > a,
.pagination-sm > li > span {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
  border-bottom-left-radius: 1px;
  border-top-left-radius: 1px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
  border-bottom-right-radius: 1px;
  border-top-right-radius: 1px;
}
.pager {
  padding-left: 0;
  margin: 18px 0;
  list-style: none;
  text-align: center;
}
.pager li {
  display: inline;
}
.pager li > a,
.pager li > span {
  display: inline-block;
  padding: 5px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.pager .next > a,
.pager .next > span {
  float: right;
}
.pager .previous > a,
.pager .previous > span {
  float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
  color: #777777;
  background-color: #fff;
  cursor: not-allowed;
}
.label {
  display: inline;
  padding: .2em .6em .3em;
  font-size: 75%;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: .25em;
}
a.label:hover,
a.label:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.label:empty {
  display: none;
}
.btn .label {
  position: relative;
  top: -1px;
}
.label-default {
  background-color: #777777;
}
.label-default[href]:hover,
.label-default[href]:focus {
  background-color: #5e5e5e;
}
.label-primary {
  background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
  background-color: #286090;
}
.label-success {
  background-color: #5cb85c;
}
.label-success[href]:hover,
.label-success[href]:focus {
  background-color: #449d44;
}
.label-info {
  background-color: #5bc0de;
}
.label-info[href]:hover,
.label-info[href]:focus {
  background-color: #31b0d5;
}
.label-warning {
  background-color: #f0ad4e;
}
.label-warning[href]:hover,
.label-warning[href]:focus {
  background-color: #ec971f;
}
.label-danger {
  background-color: #d9534f;
}
.label-danger[href]:hover,
.label-danger[href]:focus {
  background-color: #c9302c;
}
.badge {
  display: inline-block;
  min-width: 10px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: bold;
  color: #fff;
  line-height: 1;
  vertical-align: middle;
  white-space: nowrap;
  text-align: center;
  background-color: #777777;
  border-radius: 10px;
}
.badge:empty {
  display: none;
}
.btn .badge {
  position: relative;
  top: -1px;
}
.btn-xs .badge,
.btn-group-xs > .btn .badge {
  top: 0;
  padding: 1px 5px;
}
a.badge:hover,
a.badge:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
  color: #337ab7;
  background-color: #fff;
}
.list-group-item > .badge {
  float: right;
}
.list-group-item > .badge + .badge {
  margin-right: 5px;
}
.nav-pills > li > a > .badge {
  margin-left: 3px;
}
.jumbotron {
  padding-top: 30px;
  padding-bottom: 30px;
  margin-bottom: 30px;
  color: inherit;
  background-color: #eeeeee;
}
.jumbotron h1,
.jumbotron .h1 {
  color: inherit;
}
.jumbotron p {
  margin-bottom: 15px;
  font-size: 20px;
  font-weight: 200;
}
.jumbotron > hr {
  border-top-color: #d5d5d5;
}
.container .jumbotron,
.container-fluid .jumbotron {
  border-radius: 3px;
  padding-left: 0px;
  padding-right: 0px;
}
.jumbotron .container {
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .jumbotron {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .container .jumbotron,
  .container-fluid .jumbotron {
    padding-left: 60px;
    padding-right: 60px;
  }
  .jumbotron h1,
  .jumbotron .h1 {
    font-size: 59px;
  }
}
.thumbnail {
  display: block;
  padding: 4px;
  margin-bottom: 18px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: border 0.2s ease-in-out;
  -o-transition: border 0.2s ease-in-out;
  transition: border 0.2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
  margin-left: auto;
  margin-right: auto;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
  border-color: #337ab7;
}
.thumbnail .caption {
  padding: 9px;
  color: #000;
}
.alert {
  padding: 15px;
  margin-bottom: 18px;
  border: 1px solid transparent;
  border-radius: 2px;
}
.alert h4 {
  margin-top: 0;
  color: inherit;
}
.alert .alert-link {
  font-weight: bold;
}
.alert > p,
.alert > ul {
  margin-bottom: 0;
}
.alert > p + p {
  margin-top: 5px;
}
.alert-dismissable,
.alert-dismissible {
  padding-right: 35px;
}
.alert-dismissable .close,
.alert-dismissible .close {
  position: relative;
  top: -2px;
  right: -21px;
  color: inherit;
}
.alert-success {
  background-color: #dff0d8;
  border-color: #d6e9c6;
  color: #3c763d;
}
.alert-success hr {
  border-top-color: #c9e2b3;
}
.alert-success .alert-link {
  color: #2b542c;
}
.alert-info {
  background-color: #d9edf7;
  border-color: #bce8f1;
  color: #31708f;
}
.alert-info hr {
  border-top-color: #a6e1ec;
}
.alert-info .alert-link {
  color: #245269;
}
.alert-warning {
  background-color: #fcf8e3;
  border-color: #faebcc;
  color: #8a6d3b;
}
.alert-warning hr {
  border-top-color: #f7e1b5;
}
.alert-warning .alert-link {
  color: #66512c;
}
.alert-danger {
  background-color: #f2dede;
  border-color: #ebccd1;
  color: #a94442;
}
.alert-danger hr {
  border-top-color: #e4b9c0;
}
.alert-danger .alert-link {
  color: #843534;
}
@-webkit-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
@keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
.progress {
  overflow: hidden;
  height: 18px;
  margin-bottom: 18px;
  background-color: #f5f5f5;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar {
  float: left;
  width: 0%;
  height: 100%;
  font-size: 12px;
  line-height: 18px;
  color: #fff;
  text-align: center;
  background-color: #337ab7;
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  -webkit-transition: width 0.6s ease;
  -o-transition: width 0.6s ease;
  transition: width 0.6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
  -webkit-animation: progress-bar-stripes 2s linear infinite;
  -o-animation: progress-bar-stripes 2s linear infinite;
  animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
  background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-info {
  background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-warning {
  background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-danger {
  background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.media {
  margin-top: 15px;
}
.media:first-child {
  margin-top: 0;
}
.media,
.media-body {
  zoom: 1;
  overflow: hidden;
}
.media-body {
  width: 10000px;
}
.media-object {
  display: block;
}
.media-object.img-thumbnail {
  max-width: none;
}
.media-right,
.media > .pull-right {
  padding-left: 10px;
}
.media-left,
.media > .pull-left {
  padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
  display: table-cell;
  vertical-align: top;
}
.media-middle {
  vertical-align: middle;
}
.media-bottom {
  vertical-align: bottom;
}
.media-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.media-list {
  padding-left: 0;
  list-style: none;
}
.list-group {
  margin-bottom: 20px;
  padding-left: 0;
}
.list-group-item {
  position: relative;
  display: block;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
}
.list-group-item:first-child {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
}
.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
a.list-group-item,
button.list-group-item {
  color: #555;
}
a.list-group-item .list-group-item-heading,
button.list-group-item .list-group-item-heading {
  color: #333;
}
a.list-group-item:hover,
button.list-group-item:hover,
a.list-group-item:focus,
button.list-group-item:focus {
  text-decoration: none;
  color: #555;
  background-color: #f5f5f5;
}
button.list-group-item {
  width: 100%;
  text-align: left;
}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
  background-color: #eeeeee;
  color: #777777;
  cursor: not-allowed;
}
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
  color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
  color: #777777;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  z-index: 2;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
  color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
  color: #c7ddef;
}
.list-group-item-success {
  color: #3c763d;
  background-color: #dff0d8;
}
a.list-group-item-success,
button.list-group-item-success {
  color: #3c763d;
}
a.list-group-item-success .list-group-item-heading,
button.list-group-item-success .list-group-item-heading {
  color: inherit;
}
a.list-group-item-success:hover,
button.list-group-item-success:hover,
a.list-group-item-success:focus,
button.list-group-item-success:focus {
  color: #3c763d;
  background-color: #d0e9c6;
}
a.list-group-item-success.active,
button.list-group-item-success.active,
a.list-group-item-success.active:hover,
button.list-group-item-success.active:hover,
a.list-group-item-success.active:focus,
button.list-group-item-success.active:focus {
  color: #fff;
  background-color: #3c763d;
  border-color: #3c763d;
}
.list-group-item-info {
  color: #31708f;
  background-color: #d9edf7;
}
a.list-group-item-info,
button.list-group-item-info {
  color: #31708f;
}
a.list-group-item-info .list-group-item-heading,
button.list-group-item-info .list-group-item-heading {
  color: inherit;
}
a.list-group-item-info:hover,
button.list-group-item-info:hover,
a.list-group-item-info:focus,
button.list-group-item-info:focus {
  color: #31708f;
  background-color: #c4e3f3;
}
a.list-group-item-info.active,
button.list-group-item-info.active,
a.list-group-item-info.active:hover,
button.list-group-item-info.active:hover,
a.list-group-item-info.active:focus,
button.list-group-item-info.active:focus {
  color: #fff;
  background-color: #31708f;
  border-color: #31708f;
}
.list-group-item-warning {
  color: #8a6d3b;
  background-color: #fcf8e3;
}
a.list-group-item-warning,
button.list-group-item-warning {
  color: #8a6d3b;
}
a.list-group-item-warning .list-group-item-heading,
button.list-group-item-warning .list-group-item-heading {
  color: inherit;
}
a.list-group-item-warning:hover,
button.list-group-item-warning:hover,
a.list-group-item-warning:focus,
button.list-group-item-warning:focus {
  color: #8a6d3b;
  background-color: #faf2cc;
}
a.list-group-item-warning.active,
button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
button.list-group-item-warning.active:hover,
a.list-group-item-warning.active:focus,
button.list-group-item-warning.active:focus {
  color: #fff;
  background-color: #8a6d3b;
  border-color: #8a6d3b;
}
.list-group-item-danger {
  color: #a94442;
  background-color: #f2dede;
}
a.list-group-item-danger,
button.list-group-item-danger {
  color: #a94442;
}
a.list-group-item-danger .list-group-item-heading,
button.list-group-item-danger .list-group-item-heading {
  color: inherit;
}
a.list-group-item-danger:hover,
button.list-group-item-danger:hover,
a.list-group-item-danger:focus,
button.list-group-item-danger:focus {
  color: #a94442;
  background-color: #ebcccc;
}
a.list-group-item-danger.active,
button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
button.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus,
button.list-group-item-danger.active:focus {
  color: #fff;
  background-color: #a94442;
  border-color: #a94442;
}
.list-group-item-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.list-group-item-text {
  margin-bottom: 0;
  line-height: 1.3;
}
.panel {
  margin-bottom: 18px;
  background-color: #fff;
  border: 1px solid transparent;
  border-radius: 2px;
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}
.panel-body {
  padding: 15px;
}
.panel-heading {
  padding: 10px 15px;
  border-bottom: 1px solid transparent;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel-heading > .dropdown .dropdown-toggle {
  color: inherit;
}
.panel-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 15px;
  color: inherit;
}
.panel-title > a,
.panel-title > small,
.panel-title > .small,
.panel-title > small > a,
.panel-title > .small > a {
  color: inherit;
}
.panel-footer {
  padding: 10px 15px;
  background-color: #f5f5f5;
  border-top: 1px solid #ddd;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .list-group,
.panel > .panel-collapse > .list-group {
  margin-bottom: 0;
}
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
  border-width: 1px 0;
  border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
  border-top: 0;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .list-group:last-child .list-group-item:last-child,
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
  border-bottom: 0;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.panel-heading + .list-group .list-group-item:first-child {
  border-top-width: 0;
}
.list-group + .panel-footer {
  border-top-width: 0;
}
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
  margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
  padding-left: 15px;
  padding-right: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
  border-top-left-radius: 1px;
  border-top-right-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
  border-top-right-radius: 1px;
}
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
  border-bottom-left-radius: 1px;
  border-bottom-right-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
  border-bottom-right-radius: 1px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
  border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
  border-top: 0;
}
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
  border: 0;
}
.panel > .table-bordered > thead > tr > th:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
.panel > .table-bordered > tbody > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
.panel > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-bordered > thead > tr > td:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
.panel > .table-bordered > tbody > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
.panel > .table-bordered > tfoot > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  border-left: 0;
}
.panel > .table-bordered > thead > tr > th:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
.panel > .table-bordered > tbody > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
.panel > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-bordered > thead > tr > td:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
.panel > .table-bordered > tbody > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
.panel > .table-bordered > tfoot > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  border-right: 0;
}
.panel > .table-bordered > thead > tr:first-child > td,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
.panel > .table-bordered > tbody > tr:first-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
.panel > .table-bordered > thead > tr:first-child > th,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
.panel > .table-bordered > tbody > tr:first-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
  border-bottom: 0;
}
.panel > .table-bordered > tbody > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
.panel > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-bordered > tbody > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
.panel > .table-bordered > tfoot > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
  border-bottom: 0;
}
.panel > .table-responsive {
  border: 0;
  margin-bottom: 0;
}
.panel-group {
  margin-bottom: 18px;
}
.panel-group .panel {
  margin-bottom: 0;
  border-radius: 2px;
}
.panel-group .panel + .panel {
  margin-top: 5px;
}
.panel-group .panel-heading {
  border-bottom: 0;
}
.panel-group .panel-heading + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .list-group {
  border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
  border-top: 0;
}
.panel-group .panel-footer + .panel-collapse .panel-body {
  border-bottom: 1px solid #ddd;
}
.panel-default {
  border-color: #ddd;
}
.panel-default > .panel-heading {
  color: #333333;
  background-color: #f5f5f5;
  border-color: #ddd;
}
.panel-default > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ddd;
}
.panel-default > .panel-heading .badge {
  color: #f5f5f5;
  background-color: #333333;
}
.panel-default > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ddd;
}
.panel-primary {
  border-color: #337ab7;
}
.panel-primary > .panel-heading {
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #337ab7;
}
.panel-primary > .panel-heading .badge {
  color: #337ab7;
  background-color: #fff;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #337ab7;
}
.panel-success {
  border-color: #d6e9c6;
}
.panel-success > .panel-heading {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #d6e9c6;
}
.panel-success > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #d6e9c6;
}
.panel-success > .panel-heading .badge {
  color: #dff0d8;
  background-color: #3c763d;
}
.panel-success > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #d6e9c6;
}
.panel-info {
  border-color: #bce8f1;
}
.panel-info > .panel-heading {
  color: #31708f;
  background-color: #d9edf7;
  border-color: #bce8f1;
}
.panel-info > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #bce8f1;
}
.panel-info > .panel-heading .badge {
  color: #d9edf7;
  background-color: #31708f;
}
.panel-info > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #bce8f1;
}
.panel-warning {
  border-color: #faebcc;
}
.panel-warning > .panel-heading {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #faebcc;
}
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #faebcc;
}
.panel-warning > .panel-heading .badge {
  color: #fcf8e3;
  background-color: #8a6d3b;
}
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #faebcc;
}
.panel-danger {
  border-color: #ebccd1;
}
.panel-danger > .panel-heading {
  color: #a94442;
  background-color: #f2dede;
  border-color: #ebccd1;
}
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ebccd1;
}
.panel-danger > .panel-heading .badge {
  color: #f2dede;
  background-color: #a94442;
}
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ebccd1;
}
.embed-responsive {
  position: relative;
  display: block;
  height: 0;
  padding: 0;
  overflow: hidden;
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  border: 0;
}
.embed-responsive-16by9 {
  padding-bottom: 56.25%;
}
.embed-responsive-4by3 {
  padding-bottom: 75%;
}
.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
.well blockquote {
  border-color: #ddd;
  border-color: rgba(0, 0, 0, 0.15);
}
.well-lg {
  padding: 24px;
  border-radius: 3px;
}
.well-sm {
  padding: 9px;
  border-radius: 1px;
}
.close {
  float: right;
  font-size: 19.5px;
  font-weight: bold;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.2;
  filter: alpha(opacity=20);
}
.close:hover,
.close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.5;
  filter: alpha(opacity=50);
}
button.close {
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
}
.modal-open {
  overflow: hidden;
}
.modal {
  display: none;
  overflow: hidden;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  -webkit-overflow-scrolling: touch;
  outline: 0;
}
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, -25%);
  -ms-transform: translate(0, -25%);
  -o-transform: translate(0, -25%);
  transform: translate(0, -25%);
  -webkit-transition: -webkit-transform 0.3s ease-out;
  -moz-transition: -moz-transform 0.3s ease-out;
  -o-transition: -o-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}
.modal-dialog {
  position: relative;
  width: auto;
  margin: 10px;
}
.modal-content {
  position: relative;
  background-color: #fff;
  border: 1px solid #999;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  background-clip: padding-box;
  outline: 0;
}
.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
}
.modal-backdrop.fade {
  opacity: 0;
  filter: alpha(opacity=0);
}
.modal-backdrop.in {
  opacity: 0.5;
  filter: alpha(opacity=50);
}
.modal-header {
  padding: 15px;
  border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
  margin-top: -2px;
}
.modal-title {
  margin: 0;
  line-height: 1.42857143;
}
.modal-body {
  position: relative;
  padding: 15px;
}
.modal-footer {
  padding: 15px;
  text-align: right;
  border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
  margin-left: 5px;
  margin-bottom: 0;
}
.modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
  margin-left: 0;
}
.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}
@media (min-width: 768px) {
  .modal-dialog {
    width: 600px;
    margin: 30px auto;
  }
  .modal-content {
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  }
  .modal-sm {
    width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg {
    width: 900px;
  }
}
.tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 12px;
  opacity: 0;
  filter: alpha(opacity=0);
}
.tooltip.in {
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.tooltip.top {
  margin-top: -3px;
  padding: 5px 0;
}
.tooltip.right {
  margin-left: 3px;
  padding: 0 5px;
}
.tooltip.bottom {
  margin-top: 3px;
  padding: 5px 0;
}
.tooltip.left {
  margin-left: -3px;
  padding: 0 5px;
}
.tooltip-inner {
  max-width: 200px;
  padding: 3px 8px;
  color: #fff;
  text-align: center;
  background-color: #000;
  border-radius: 2px;
}
.tooltip-arrow {
  position: absolute;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.tooltip.top .tooltip-arrow {
  bottom: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
  bottom: 0;
  right: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-right .tooltip-arrow {
  bottom: 0;
  left: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.right .tooltip-arrow {
  top: 50%;
  left: 0;
  margin-top: -5px;
  border-width: 5px 5px 5px 0;
  border-right-color: #000;
}
.tooltip.left .tooltip-arrow {
  top: 50%;
  right: 0;
  margin-top: -5px;
  border-width: 5px 0 5px 5px;
  border-left-color: #000;
}
.tooltip.bottom .tooltip-arrow {
  top: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-left .tooltip-arrow {
  top: 0;
  right: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-right .tooltip-arrow {
  top: 0;
  left: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1060;
  display: none;
  max-width: 276px;
  padding: 1px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 13px;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.popover.top {
  margin-top: -10px;
}
.popover.right {
  margin-left: 10px;
}
.popover.bottom {
  margin-top: 10px;
}
.popover.left {
  margin-left: -10px;
}
.popover-title {
  margin: 0;
  padding: 8px 14px;
  font-size: 13px;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  border-radius: 2px 2px 0 0;
}
.popover-content {
  padding: 9px 14px;
}
.popover > .arrow,
.popover > .arrow:after {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.popover > .arrow {
  border-width: 11px;
}
.popover > .arrow:after {
  border-width: 10px;
  content: "";
}
.popover.top > .arrow {
  left: 50%;
  margin-left: -11px;
  border-bottom-width: 0;
  border-top-color: #999999;
  border-top-color: rgba(0, 0, 0, 0.25);
  bottom: -11px;
}
.popover.top > .arrow:after {
  content: " ";
  bottom: 1px;
  margin-left: -10px;
  border-bottom-width: 0;
  border-top-color: #fff;
}
.popover.right > .arrow {
  top: 50%;
  left: -11px;
  margin-top: -11px;
  border-left-width: 0;
  border-right-color: #999999;
  border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.right > .arrow:after {
  content: " ";
  left: 1px;
  bottom: -10px;
  border-left-width: 0;
  border-right-color: #fff;
}
.popover.bottom > .arrow {
  left: 50%;
  margin-left: -11px;
  border-top-width: 0;
  border-bottom-color: #999999;
  border-bottom-color: rgba(0, 0, 0, 0.25);
  top: -11px;
}
.popover.bottom > .arrow:after {
  content: " ";
  top: 1px;
  margin-left: -10px;
  border-top-width: 0;
  border-bottom-color: #fff;
}
.popover.left > .arrow {
  top: 50%;
  right: -11px;
  margin-top: -11px;
  border-right-width: 0;
  border-left-color: #999999;
  border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.left > .arrow:after {
  content: " ";
  right: 1px;
  border-right-width: 0;
  border-left-color: #fff;
  bottom: -10px;
}
.carousel {
  position: relative;
}
.carousel-inner {
  position: relative;
  overflow: hidden;
  width: 100%;
}
.carousel-inner > .item {
  display: none;
  position: relative;
  -webkit-transition: 0.6s ease-in-out left;
  -o-transition: 0.6s ease-in-out left;
  transition: 0.6s ease-in-out left;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  line-height: 1;
}
@media all and (transform-3d), (-webkit-transform-3d) {
  .carousel-inner > .item {
    -webkit-transition: -webkit-transform 0.6s ease-in-out;
    -moz-transition: -moz-transform 0.6s ease-in-out;
    -o-transition: -o-transform 0.6s ease-in-out;
    transition: transform 0.6s ease-in-out;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000px;
    -moz-perspective: 1000px;
    perspective: 1000px;
  }
  .carousel-inner > .item.next,
  .carousel-inner > .item.active.right {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.prev,
  .carousel-inner > .item.active.left {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.next.left,
  .carousel-inner > .item.prev.right,
  .carousel-inner > .item.active {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    left: 0;
  }
}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
  display: block;
}
.carousel-inner > .active {
  left: 0;
}
.carousel-inner > .next,
.carousel-inner > .prev {
  position: absolute;
  top: 0;
  width: 100%;
}
.carousel-inner > .next {
  left: 100%;
}
.carousel-inner > .prev {
  left: -100%;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
  left: 0;
}
.carousel-inner > .active.left {
  left: -100%;
}
.carousel-inner > .active.right {
  left: 100%;
}
.carousel-control {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 15%;
  opacity: 0.5;
  filter: alpha(opacity=50);
  font-size: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  background-color: rgba(0, 0, 0, 0);
}
.carousel-control.left {
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
}
.carousel-control.right {
  left: auto;
  right: 0;
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
}
.carousel-control:hover,
.carousel-control:focus {
  outline: 0;
  color: #fff;
  text-decoration: none;
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.carousel-control .icon-prev,
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right {
  position: absolute;
  top: 50%;
  margin-top: -10px;
  z-index: 5;
  display: inline-block;
}
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
  left: 50%;
  margin-left: -10px;
}
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
  right: 50%;
  margin-right: -10px;
}
.carousel-control .icon-prev,
.carousel-control .icon-next {
  width: 20px;
  height: 20px;
  line-height: 1;
  font-family: serif;
}
.carousel-control .icon-prev:before {
  content: '\2039';
}
.carousel-control .icon-next:before {
  content: '\203a';
}
.carousel-indicators {
  position: absolute;
  bottom: 10px;
  left: 50%;
  z-index: 15;
  width: 60%;
  margin-left: -30%;
  padding-left: 0;
  list-style: none;
  text-align: center;
}
.carousel-indicators li {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 1px;
  text-indent: -999px;
  border: 1px solid #fff;
  border-radius: 10px;
  cursor: pointer;
  background-color: #000 \9;
  background-color: rgba(0, 0, 0, 0);
}
.carousel-indicators .active {
  margin: 0;
  width: 12px;
  height: 12px;
  background-color: #fff;
}
.carousel-caption {
  position: absolute;
  left: 15%;
  right: 15%;
  bottom: 20px;
  z-index: 10;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.carousel-caption .btn {
  text-shadow: none;
}
@media screen and (min-width: 768px) {
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-prev,
  .carousel-control .icon-next {
    width: 30px;
    height: 30px;
    margin-top: -10px;
    font-size: 30px;
  }
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .icon-prev {
    margin-left: -10px;
  }
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-next {
    margin-right: -10px;
  }
  .carousel-caption {
    left: 20%;
    right: 20%;
    padding-bottom: 30px;
  }
  .carousel-indicators {
    bottom: 20px;
  }
}
.clearfix:before,
.clearfix:after,
.dl-horizontal dd:before,
.dl-horizontal dd:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after,
.btn-toolbar:before,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after,
.pager:before,
.pager:after,
.panel-body:before,
.panel-body:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after,
.item_buttons:before,
.item_buttons:after {
  content: " ";
  display: table;
}
.clearfix:after,
.dl-horizontal dd:after,
.container:after,
.container-fluid:after,
.row:after,
.form-horizontal .form-group:after,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:after,
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after,
.pager:after,
.panel-body:after,
.modal-header:after,
.modal-footer:after,
.item_buttons:after {
  clear: both;
}
.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.pull-right {
  float: right !important;
}
.pull-left {
  float: left !important;
}
.hide {
  display: none !important;
}
.show {
  display: block !important;
}
.invisible {
  visibility: hidden;
}
.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.hidden {
  display: none !important;
}
.affix {
  position: fixed;
}
@-ms-viewport {
  width: device-width;
}
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
  display: none !important;
}
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
  display: none !important;
}
@media (max-width: 767px) {
  .visible-xs {
    display: block !important;
  }
  table.visible-xs {
    display: table !important;
  }
  tr.visible-xs {
    display: table-row !important;
  }
  th.visible-xs,
  td.visible-xs {
    display: table-cell !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-block {
    display: block !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline {
    display: inline !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm {
    display: block !important;
  }
  table.visible-sm {
    display: table !important;
  }
  tr.visible-sm {
    display: table-row !important;
  }
  th.visible-sm,
  td.visible-sm {
    display: table-cell !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-block {
    display: block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline {
    display: inline !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md {
    display: block !important;
  }
  table.visible-md {
    display: table !important;
  }
  tr.visible-md {
    display: table-row !important;
  }
  th.visible-md,
  td.visible-md {
    display: table-cell !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-block {
    display: block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline {
    display: inline !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg {
    display: block !important;
  }
  table.visible-lg {
    display: table !important;
  }
  tr.visible-lg {
    display: table-row !important;
  }
  th.visible-lg,
  td.visible-lg {
    display: table-cell !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-block {
    display: block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline {
    display: inline !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline-block {
    display: inline-block !important;
  }
}
@media (max-width: 767px) {
  .hidden-xs {
    display: none !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .hidden-sm {
    display: none !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .hidden-md {
    display: none !important;
  }
}
@media (min-width: 1200px) {
  .hidden-lg {
    display: none !important;
  }
}
.visible-print {
  display: none !important;
}
@media print {
  .visible-print {
    display: block !important;
  }
  table.visible-print {
    display: table !important;
  }
  tr.visible-print {
    display: table-row !important;
  }
  th.visible-print,
  td.visible-print {
    display: table-cell !important;
  }
}
.visible-print-block {
  display: none !important;
}
@media print {
  .visible-print-block {
    display: block !important;
  }
}
.visible-print-inline {
  display: none !important;
}
@media print {
  .visible-print-inline {
    display: inline !important;
  }
}
.visible-print-inline-block {
  display: none !important;
}
@media print {
  .visible-print-inline-block {
    display: inline-block !important;
  }
}
@media print {
  .hidden-print {
    display: none !important;
  }
}
/*!
*
* Font Awesome
*
*/
/*!
 *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */
/* FONT PATH
 * -------------------------- */
@font-face {
  font-family: 'FontAwesome';
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0');
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}
.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
  font-size: 1.33333333em;
  line-height: 0.75em;
  vertical-align: -15%;
}
.fa-2x {
  font-size: 2em;
}
.fa-3x {
  font-size: 3em;
}
.fa-4x {
  font-size: 4em;
}
.fa-5x {
  font-size: 5em;
}
.fa-fw {
  width: 1.28571429em;
  text-align: center;
}
.fa-ul {
  padding-left: 0;
  margin-left: 2.14285714em;
  list-style-type: none;
}
.fa-ul > li {
  position: relative;
}
.fa-li {
  position: absolute;
  left: -2.14285714em;
  width: 2.14285714em;
  top: 0.14285714em;
  text-align: center;
}
.fa-li.fa-lg {
  left: -1.85714286em;
}
.fa-border {
  padding: .2em .25em .15em;
  border: solid 0.08em #eee;
  border-radius: .1em;
}
.pull-right {
  float: right;
}
.pull-left {
  float: left;
}
.fa.pull-left {
  margin-right: .3em;
}
.fa.pull-right {
  margin-left: .3em;
}
.fa-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}
@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
.fa-rotate-90 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}
.fa-rotate-180 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.fa-rotate-270 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg);
}
.fa-flip-horizontal {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
  -webkit-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  transform: scale(-1, 1);
}
.fa-flip-vertical {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
  -webkit-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
  filter: none;
}
.fa-stack {
  position: relative;
  display: inline-block;
  width: 2em;
  height: 2em;
  line-height: 2em;
  vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
}
.fa-stack-1x {
  line-height: inherit;
}
.fa-stack-2x {
  font-size: 2em;
}
.fa-inverse {
  color: #fff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
   readers do not read off random characters that represent icons */
.fa-glass:before {
  content: "\f000";
}
.fa-music:before {
  content: "\f001";
}
.fa-search:before {
  content: "\f002";
}
.fa-envelope-o:before {
  content: "\f003";
}
.fa-heart:before {
  content: "\f004";
}
.fa-star:before {
  content: "\f005";
}
.fa-star-o:before {
  content: "\f006";
}
.fa-user:before {
  content: "\f007";
}
.fa-film:before {
  content: "\f008";
}
.fa-th-large:before {
  content: "\f009";
}
.fa-th:before {
  content: "\f00a";
}
.fa-th-list:before {
  content: "\f00b";
}
.fa-check:before {
  content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
  content: "\f00d";
}
.fa-search-plus:before {
  content: "\f00e";
}
.fa-search-minus:before {
  content: "\f010";
}
.fa-power-off:before {
  content: "\f011";
}
.fa-signal:before {
  content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
  content: "\f013";
}
.fa-trash-o:before {
  content: "\f014";
}
.fa-home:before {
  content: "\f015";
}
.fa-file-o:before {
  content: "\f016";
}
.fa-clock-o:before {
  content: "\f017";
}
.fa-road:before {
  content: "\f018";
}
.fa-download:before {
  content: "\f019";
}
.fa-arrow-circle-o-down:before {
  content: "\f01a";
}
.fa-arrow-circle-o-up:before {
  content: "\f01b";
}
.fa-inbox:before {
  content: "\f01c";
}
.fa-play-circle-o:before {
  content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
  content: "\f01e";
}
.fa-refresh:before {
  content: "\f021";
}
.fa-list-alt:before {
  content: "\f022";
}
.fa-lock:before {
  content: "\f023";
}
.fa-flag:before {
  content: "\f024";
}
.fa-headphones:before {
  content: "\f025";
}
.fa-volume-off:before {
  content: "\f026";
}
.fa-volume-down:before {
  content: "\f027";
}
.fa-volume-up:before {
  content: "\f028";
}
.fa-qrcode:before {
  content: "\f029";
}
.fa-barcode:before {
  content: "\f02a";
}
.fa-tag:before {
  content: "\f02b";
}
.fa-tags:before {
  content: "\f02c";
}
.fa-book:before {
  content: "\f02d";
}
.fa-bookmark:before {
  content: "\f02e";
}
.fa-print:before {
  content: "\f02f";
}
.fa-camera:before {
  content: "\f030";
}
.fa-font:before {
  content: "\f031";
}
.fa-bold:before {
  content: "\f032";
}
.fa-italic:before {
  content: "\f033";
}
.fa-text-height:before {
  content: "\f034";
}
.fa-text-width:before {
  content: "\f035";
}
.fa-align-left:before {
  content: "\f036";
}
.fa-align-center:before {
  content: "\f037";
}
.fa-align-right:before {
  content: "\f038";
}
.fa-align-justify:before {
  content: "\f039";
}
.fa-list:before {
  content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
  content: "\f03b";
}
.fa-indent:before {
  content: "\f03c";
}
.fa-video-camera:before {
  content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
  content: "\f03e";
}
.fa-pencil:before {
  content: "\f040";
}
.fa-map-marker:before {
  content: "\f041";
}
.fa-adjust:before {
  content: "\f042";
}
.fa-tint:before {
  content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
  content: "\f044";
}
.fa-share-square-o:before {
  content: "\f045";
}
.fa-check-square-o:before {
  content: "\f046";
}
.fa-arrows:before {
  content: "\f047";
}
.fa-step-backward:before {
  content: "\f048";
}
.fa-fast-backward:before {
  content: "\f049";
}
.fa-backward:before {
  content: "\f04a";
}
.fa-play:before {
  content: "\f04b";
}
.fa-pause:before {
  content: "\f04c";
}
.fa-stop:before {
  content: "\f04d";
}
.fa-forward:before {
  content: "\f04e";
}
.fa-fast-forward:before {
  content: "\f050";
}
.fa-step-forward:before {
  content: "\f051";
}
.fa-eject:before {
  content: "\f052";
}
.fa-chevron-left:before {
  content: "\f053";
}
.fa-chevron-right:before {
  content: "\f054";
}
.fa-plus-circle:before {
  content: "\f055";
}
.fa-minus-circle:before {
  content: "\f056";
}
.fa-times-circle:before {
  content: "\f057";
}
.fa-check-circle:before {
  content: "\f058";
}
.fa-question-circle:before {
  content: "\f059";
}
.fa-info-circle:before {
  content: "\f05a";
}
.fa-crosshairs:before {
  content: "\f05b";
}
.fa-times-circle-o:before {
  content: "\f05c";
}
.fa-check-circle-o:before {
  content: "\f05d";
}
.fa-ban:before {
  content: "\f05e";
}
.fa-arrow-left:before {
  content: "\f060";
}
.fa-arrow-right:before {
  content: "\f061";
}
.fa-arrow-up:before {
  content: "\f062";
}
.fa-arrow-down:before {
  content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
  content: "\f064";
}
.fa-expand:before {
  content: "\f065";
}
.fa-compress:before {
  content: "\f066";
}
.fa-plus:before {
  content: "\f067";
}
.fa-minus:before {
  content: "\f068";
}
.fa-asterisk:before {
  content: "\f069";
}
.fa-exclamation-circle:before {
  content: "\f06a";
}
.fa-gift:before {
  content: "\f06b";
}
.fa-leaf:before {
  content: "\f06c";
}
.fa-fire:before {
  content: "\f06d";
}
.fa-eye:before {
  content: "\f06e";
}
.fa-eye-slash:before {
  content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
  content: "\f071";
}
.fa-plane:before {
  content: "\f072";
}
.fa-calendar:before {
  content: "\f073";
}
.fa-random:before {
  content: "\f074";
}
.fa-comment:before {
  content: "\f075";
}
.fa-magnet:before {
  content: "\f076";
}
.fa-chevron-up:before {
  content: "\f077";
}
.fa-chevron-down:before {
  content: "\f078";
}
.fa-retweet:before {
  content: "\f079";
}
.fa-shopping-cart:before {
  content: "\f07a";
}
.fa-folder:before {
  content: "\f07b";
}
.fa-folder-open:before {
  content: "\f07c";
}
.fa-arrows-v:before {
  content: "\f07d";
}
.fa-arrows-h:before {
  content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
  content: "\f080";
}
.fa-twitter-square:before {
  content: "\f081";
}
.fa-facebook-square:before {
  content: "\f082";
}
.fa-camera-retro:before {
  content: "\f083";
}
.fa-key:before {
  content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
  content: "\f085";
}
.fa-comments:before {
  content: "\f086";
}
.fa-thumbs-o-up:before {
  content: "\f087";
}
.fa-thumbs-o-down:before {
  content: "\f088";
}
.fa-star-half:before {
  content: "\f089";
}
.fa-heart-o:before {
  content: "\f08a";
}
.fa-sign-out:before {
  content: "\f08b";
}
.fa-linkedin-square:before {
  content: "\f08c";
}
.fa-thumb-tack:before {
  content: "\f08d";
}
.fa-external-link:before {
  content: "\f08e";
}
.fa-sign-in:before {
  content: "\f090";
}
.fa-trophy:before {
  content: "\f091";
}
.fa-github-square:before {
  content: "\f092";
}
.fa-upload:before {
  content: "\f093";
}
.fa-lemon-o:before {
  content: "\f094";
}
.fa-phone:before {
  content: "\f095";
}
.fa-square-o:before {
  content: "\f096";
}
.fa-bookmark-o:before {
  content: "\f097";
}
.fa-phone-square:before {
  content: "\f098";
}
.fa-twitter:before {
  content: "\f099";
}
.fa-facebook:before {
  content: "\f09a";
}
.fa-github:before {
  content: "\f09b";
}
.fa-unlock:before {
  content: "\f09c";
}
.fa-credit-card:before {
  content: "\f09d";
}
.fa-rss:before {
  content: "\f09e";
}
.fa-hdd-o:before {
  content: "\f0a0";
}
.fa-bullhorn:before {
  content: "\f0a1";
}
.fa-bell:before {
  content: "\f0f3";
}
.fa-certificate:before {
  content: "\f0a3";
}
.fa-hand-o-right:before {
  content: "\f0a4";
}
.fa-hand-o-left:before {
  content: "\f0a5";
}
.fa-hand-o-up:before {
  content: "\f0a6";
}
.fa-hand-o-down:before {
  content: "\f0a7";
}
.fa-arrow-circle-left:before {
  content: "\f0a8";
}
.fa-arrow-circle-right:before {
  content: "\f0a9";
}
.fa-arrow-circle-up:before {
  content: "\f0aa";
}
.fa-arrow-circle-down:before {
  content: "\f0ab";
}
.fa-globe:before {
  content: "\f0ac";
}
.fa-wrench:before {
  content: "\f0ad";
}
.fa-tasks:before {
  content: "\f0ae";
}
.fa-filter:before {
  content: "\f0b0";
}
.fa-briefcase:before {
  content: "\f0b1";
}
.fa-arrows-alt:before {
  content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
  content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
  content: "\f0c1";
}
.fa-cloud:before {
  content: "\f0c2";
}
.fa-flask:before {
  content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
  content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
  content: "\f0c5";
}
.fa-paperclip:before {
  content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
  content: "\f0c7";
}
.fa-square:before {
  content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
  content: "\f0c9";
}
.fa-list-ul:before {
  content: "\f0ca";
}
.fa-list-ol:before {
  content: "\f0cb";
}
.fa-strikethrough:before {
  content: "\f0cc";
}
.fa-underline:before {
  content: "\f0cd";
}
.fa-table:before {
  content: "\f0ce";
}
.fa-magic:before {
  content: "\f0d0";
}
.fa-truck:before {
  content: "\f0d1";
}
.fa-pinterest:before {
  content: "\f0d2";
}
.fa-pinterest-square:before {
  content: "\f0d3";
}
.fa-google-plus-square:before {
  content: "\f0d4";
}
.fa-google-plus:before {
  content: "\f0d5";
}
.fa-money:before {
  content: "\f0d6";
}
.fa-caret-down:before {
  content: "\f0d7";
}
.fa-caret-up:before {
  content: "\f0d8";
}
.fa-caret-left:before {
  content: "\f0d9";
}
.fa-caret-right:before {
  content: "\f0da";
}
.fa-columns:before {
  content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
  content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
  content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
  content: "\f0de";
}
.fa-envelope:before {
  content: "\f0e0";
}
.fa-linkedin:before {
  content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
  content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
  content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
  content: "\f0e4";
}
.fa-comment-o:before {
  content: "\f0e5";
}
.fa-comments-o:before {
  content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
  content: "\f0e7";
}
.fa-sitemap:before {
  content: "\f0e8";
}
.fa-umbrella:before {
  content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
  content: "\f0ea";
}
.fa-lightbulb-o:before {
  content: "\f0eb";
}
.fa-exchange:before {
  content: "\f0ec";
}
.fa-cloud-download:before {
  content: "\f0ed";
}
.fa-cloud-upload:before {
  content: "\f0ee";
}
.fa-user-md:before {
  content: "\f0f0";
}
.fa-stethoscope:before {
  content: "\f0f1";
}
.fa-suitcase:before {
  content: "\f0f2";
}
.fa-bell-o:before {
  content: "\f0a2";
}
.fa-coffee:before {
  content: "\f0f4";
}
.fa-cutlery:before {
  content: "\f0f5";
}
.fa-file-text-o:before {
  content: "\f0f6";
}
.fa-building-o:before {
  content: "\f0f7";
}
.fa-hospital-o:before {
  content: "\f0f8";
}
.fa-ambulance:before {
  content: "\f0f9";
}
.fa-medkit:before {
  content: "\f0fa";
}
.fa-fighter-jet:before {
  content: "\f0fb";
}
.fa-beer:before {
  content: "\f0fc";
}
.fa-h-square:before {
  content: "\f0fd";
}
.fa-plus-square:before {
  content: "\f0fe";
}
.fa-angle-double-left:before {
  content: "\f100";
}
.fa-angle-double-right:before {
  content: "\f101";
}
.fa-angle-double-up:before {
  content: "\f102";
}
.fa-angle-double-down:before {
  content: "\f103";
}
.fa-angle-left:before {
  content: "\f104";
}
.fa-angle-right:before {
  content: "\f105";
}
.fa-angle-up:before {
  content: "\f106";
}
.fa-angle-down:before {
  content: "\f107";
}
.fa-desktop:before {
  content: "\f108";
}
.fa-laptop:before {
  content: "\f109";
}
.fa-tablet:before {
  content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
  content: "\f10b";
}
.fa-circle-o:before {
  content: "\f10c";
}
.fa-quote-left:before {
  content: "\f10d";
}
.fa-quote-right:before {
  content: "\f10e";
}
.fa-spinner:before {
  content: "\f110";
}
.fa-circle:before {
  content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
  content: "\f112";
}
.fa-github-alt:before {
  content: "\f113";
}
.fa-folder-o:before {
  content: "\f114";
}
.fa-folder-open-o:before {
  content: "\f115";
}
.fa-smile-o:before {
  content: "\f118";
}
.fa-frown-o:before {
  content: "\f119";
}
.fa-meh-o:before {
  content: "\f11a";
}
.fa-gamepad:before {
  content: "\f11b";
}
.fa-keyboard-o:before {
  content: "\f11c";
}
.fa-flag-o:before {
  content: "\f11d";
}
.fa-flag-checkered:before {
  content: "\f11e";
}
.fa-terminal:before {
  content: "\f120";
}
.fa-code:before {
  content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
  content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
  content: "\f123";
}
.fa-location-arrow:before {
  content: "\f124";
}
.fa-crop:before {
  content: "\f125";
}
.fa-code-fork:before {
  content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
  content: "\f127";
}
.fa-question:before {
  content: "\f128";
}
.fa-info:before {
  content: "\f129";
}
.fa-exclamation:before {
  content: "\f12a";
}
.fa-superscript:before {
  content: "\f12b";
}
.fa-subscript:before {
  content: "\f12c";
}
.fa-eraser:before {
  content: "\f12d";
}
.fa-puzzle-piece:before {
  content: "\f12e";
}
.fa-microphone:before {
  content: "\f130";
}
.fa-microphone-slash:before {
  content: "\f131";
}
.fa-shield:before {
  content: "\f132";
}
.fa-calendar-o:before {
  content: "\f133";
}
.fa-fire-extinguisher:before {
  content: "\f134";
}
.fa-rocket:before {
  content: "\f135";
}
.fa-maxcdn:before {
  content: "\f136";
}
.fa-chevron-circle-left:before {
  content: "\f137";
}
.fa-chevron-circle-right:before {
  content: "\f138";
}
.fa-chevron-circle-up:before {
  content: "\f139";
}
.fa-chevron-circle-down:before {
  content: "\f13a";
}
.fa-html5:before {
  content: "\f13b";
}
.fa-css3:before {
  content: "\f13c";
}
.fa-anchor:before {
  content: "\f13d";
}
.fa-unlock-alt:before {
  content: "\f13e";
}
.fa-bullseye:before {
  content: "\f140";
}
.fa-ellipsis-h:before {
  content: "\f141";
}
.fa-ellipsis-v:before {
  content: "\f142";
}
.fa-rss-square:before {
  content: "\f143";
}
.fa-play-circle:before {
  content: "\f144";
}
.fa-ticket:before {
  content: "\f145";
}
.fa-minus-square:before {
  content: "\f146";
}
.fa-minus-square-o:before {
  content: "\f147";
}
.fa-level-up:before {
  content: "\f148";
}
.fa-level-down:before {
  content: "\f149";
}
.fa-check-square:before {
  content: "\f14a";
}
.fa-pencil-square:before {
  content: "\f14b";
}
.fa-external-link-square:before {
  content: "\f14c";
}
.fa-share-square:before {
  content: "\f14d";
}
.fa-compass:before {
  content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
  content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
  content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
  content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
  content: "\f153";
}
.fa-gbp:before {
  content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
  content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
  content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
  content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
  content: "\f158";
}
.fa-won:before,
.fa-krw:before {
  content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
  content: "\f15a";
}
.fa-file:before {
  content: "\f15b";
}
.fa-file-text:before {
  content: "\f15c";
}
.fa-sort-alpha-asc:before {
  content: "\f15d";
}
.fa-sort-alpha-desc:before {
  content: "\f15e";
}
.fa-sort-amount-asc:before {
  content: "\f160";
}
.fa-sort-amount-desc:before {
  content: "\f161";
}
.fa-sort-numeric-asc:before {
  content: "\f162";
}
.fa-sort-numeric-desc:before {
  content: "\f163";
}
.fa-thumbs-up:before {
  content: "\f164";
}
.fa-thumbs-down:before {
  content: "\f165";
}
.fa-youtube-square:before {
  content: "\f166";
}
.fa-youtube:before {
  content: "\f167";
}
.fa-xing:before {
  content: "\f168";
}
.fa-xing-square:before {
  content: "\f169";
}
.fa-youtube-play:before {
  content: "\f16a";
}
.fa-dropbox:before {
  content: "\f16b";
}
.fa-stack-overflow:before {
  content: "\f16c";
}
.fa-instagram:before {
  content: "\f16d";
}
.fa-flickr:before {
  content: "\f16e";
}
.fa-adn:before {
  content: "\f170";
}
.fa-bitbucket:before {
  content: "\f171";
}
.fa-bitbucket-square:before {
  content: "\f172";
}
.fa-tumblr:before {
  content: "\f173";
}
.fa-tumblr-square:before {
  content: "\f174";
}
.fa-long-arrow-down:before {
  content: "\f175";
}
.fa-long-arrow-up:before {
  content: "\f176";
}
.fa-long-arrow-left:before {
  content: "\f177";
}
.fa-long-arrow-right:before {
  content: "\f178";
}
.fa-apple:before {
  content: "\f179";
}
.fa-windows:before {
  content: "\f17a";
}
.fa-android:before {
  content: "\f17b";
}
.fa-linux:before {
  content: "\f17c";
}
.fa-dribbble:before {
  content: "\f17d";
}
.fa-skype:before {
  content: "\f17e";
}
.fa-foursquare:before {
  content: "\f180";
}
.fa-trello:before {
  content: "\f181";
}
.fa-female:before {
  content: "\f182";
}
.fa-male:before {
  content: "\f183";
}
.fa-gittip:before {
  content: "\f184";
}
.fa-sun-o:before {
  content: "\f185";
}
.fa-moon-o:before {
  content: "\f186";
}
.fa-archive:before {
  content: "\f187";
}
.fa-bug:before {
  content: "\f188";
}
.fa-vk:before {
  content: "\f189";
}
.fa-weibo:before {
  content: "\f18a";
}
.fa-renren:before {
  content: "\f18b";
}
.fa-pagelines:before {
  content: "\f18c";
}
.fa-stack-exchange:before {
  content: "\f18d";
}
.fa-arrow-circle-o-right:before {
  content: "\f18e";
}
.fa-arrow-circle-o-left:before {
  content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
  content: "\f191";
}
.fa-dot-circle-o:before {
  content: "\f192";
}
.fa-wheelchair:before {
  content: "\f193";
}
.fa-vimeo-square:before {
  content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
  content: "\f195";
}
.fa-plus-square-o:before {
  content: "\f196";
}
.fa-space-shuttle:before {
  content: "\f197";
}
.fa-slack:before {
  content: "\f198";
}
.fa-envelope-square:before {
  content: "\f199";
}
.fa-wordpress:before {
  content: "\f19a";
}
.fa-openid:before {
  content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
  content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
  content: "\f19d";
}
.fa-yahoo:before {
  content: "\f19e";
}
.fa-google:before {
  content: "\f1a0";
}
.fa-reddit:before {
  content: "\f1a1";
}
.fa-reddit-square:before {
  content: "\f1a2";
}
.fa-stumbleupon-circle:before {
  content: "\f1a3";
}
.fa-stumbleupon:before {
  content: "\f1a4";
}
.fa-delicious:before {
  content: "\f1a5";
}
.fa-digg:before {
  content: "\f1a6";
}
.fa-pied-piper:before {
  content: "\f1a7";
}
.fa-pied-piper-alt:before {
  content: "\f1a8";
}
.fa-drupal:before {
  content: "\f1a9";
}
.fa-joomla:before {
  content: "\f1aa";
}
.fa-language:before {
  content: "\f1ab";
}
.fa-fax:before {
  content: "\f1ac";
}
.fa-building:before {
  content: "\f1ad";
}
.fa-child:before {
  content: "\f1ae";
}
.fa-paw:before {
  content: "\f1b0";
}
.fa-spoon:before {
  content: "\f1b1";
}
.fa-cube:before {
  content: "\f1b2";
}
.fa-cubes:before {
  content: "\f1b3";
}
.fa-behance:before {
  content: "\f1b4";
}
.fa-behance-square:before {
  content: "\f1b5";
}
.fa-steam:before {
  content: "\f1b6";
}
.fa-steam-square:before {
  content: "\f1b7";
}
.fa-recycle:before {
  content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
  content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
  content: "\f1ba";
}
.fa-tree:before {
  content: "\f1bb";
}
.fa-spotify:before {
  content: "\f1bc";
}
.fa-deviantart:before {
  content: "\f1bd";
}
.fa-soundcloud:before {
  content: "\f1be";
}
.fa-database:before {
  content: "\f1c0";
}
.fa-file-pdf-o:before {
  content: "\f1c1";
}
.fa-file-word-o:before {
  content: "\f1c2";
}
.fa-file-excel-o:before {
  content: "\f1c3";
}
.fa-file-powerpoint-o:before {
  content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
  content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
  content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
  content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
  content: "\f1c8";
}
.fa-file-code-o:before {
  content: "\f1c9";
}
.fa-vine:before {
  content: "\f1ca";
}
.fa-codepen:before {
  content: "\f1cb";
}
.fa-jsfiddle:before {
  content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
  content: "\f1cd";
}
.fa-circle-o-notch:before {
  content: "\f1ce";
}
.fa-ra:before,
.fa-rebel:before {
  content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
  content: "\f1d1";
}
.fa-git-square:before {
  content: "\f1d2";
}
.fa-git:before {
  content: "\f1d3";
}
.fa-hacker-news:before {
  content: "\f1d4";
}
.fa-tencent-weibo:before {
  content: "\f1d5";
}
.fa-qq:before {
  content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
  content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
  content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
  content: "\f1d9";
}
.fa-history:before {
  content: "\f1da";
}
.fa-circle-thin:before {
  content: "\f1db";
}
.fa-header:before {
  content: "\f1dc";
}
.fa-paragraph:before {
  content: "\f1dd";
}
.fa-sliders:before {
  content: "\f1de";
}
.fa-share-alt:before {
  content: "\f1e0";
}
.fa-share-alt-square:before {
  content: "\f1e1";
}
.fa-bomb:before {
  content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
  content: "\f1e3";
}
.fa-tty:before {
  content: "\f1e4";
}
.fa-binoculars:before {
  content: "\f1e5";
}
.fa-plug:before {
  content: "\f1e6";
}
.fa-slideshare:before {
  content: "\f1e7";
}
.fa-twitch:before {
  content: "\f1e8";
}
.fa-yelp:before {
  content: "\f1e9";
}
.fa-newspaper-o:before {
  content: "\f1ea";
}
.fa-wifi:before {
  content: "\f1eb";
}
.fa-calculator:before {
  content: "\f1ec";
}
.fa-paypal:before {
  content: "\f1ed";
}
.fa-google-wallet:before {
  content: "\f1ee";
}
.fa-cc-visa:before {
  content: "\f1f0";
}
.fa-cc-mastercard:before {
  content: "\f1f1";
}
.fa-cc-discover:before {
  content: "\f1f2";
}
.fa-cc-amex:before {
  content: "\f1f3";
}
.fa-cc-paypal:before {
  content: "\f1f4";
}
.fa-cc-stripe:before {
  content: "\f1f5";
}
.fa-bell-slash:before {
  content: "\f1f6";
}
.fa-bell-slash-o:before {
  content: "\f1f7";
}
.fa-trash:before {
  content: "\f1f8";
}
.fa-copyright:before {
  content: "\f1f9";
}
.fa-at:before {
  content: "\f1fa";
}
.fa-eyedropper:before {
  content: "\f1fb";
}
.fa-paint-brush:before {
  content: "\f1fc";
}
.fa-birthday-cake:before {
  content: "\f1fd";
}
.fa-area-chart:before {
  content: "\f1fe";
}
.fa-pie-chart:before {
  content: "\f200";
}
.fa-line-chart:before {
  content: "\f201";
}
.fa-lastfm:before {
  content: "\f202";
}
.fa-lastfm-square:before {
  content: "\f203";
}
.fa-toggle-off:before {
  content: "\f204";
}
.fa-toggle-on:before {
  content: "\f205";
}
.fa-bicycle:before {
  content: "\f206";
}
.fa-bus:before {
  content: "\f207";
}
.fa-ioxhost:before {
  content: "\f208";
}
.fa-angellist:before {
  content: "\f209";
}
.fa-cc:before {
  content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
  content: "\f20b";
}
.fa-meanpath:before {
  content: "\f20c";
}
/*!
*
* IPython base
*
*/
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
code {
  color: #000;
}
pre {
  font-size: inherit;
  line-height: inherit;
}
label {
  font-weight: normal;
}
/* Make the page background atleast 100% the height of the view port */
/* Make the page itself atleast 70% the height of the view port */
.border-box-sizing {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.corner-all {
  border-radius: 2px;
}
.no-padding {
  padding: 0px;
}
/* Flexible box model classes */
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
/* This file is a compatability layer.  It allows the usage of flexible box 
model layouts accross multiple browsers, including older browsers.  The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below).  Browsers that are known to implement this 
new spec completely include:

    Firefox 28.0+
    Chrome 29.0+
    Internet Explorer 11+ 
    Opera 17.0+

Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
.hbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
.hbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.vbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.vbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.hbox.reverse,
.vbox.reverse,
.reverse {
  /* Old browsers */
  -webkit-box-direction: reverse;
  -moz-box-direction: reverse;
  box-direction: reverse;
  /* Modern browsers */
  flex-direction: row-reverse;
}
.hbox.box-flex0,
.vbox.box-flex0,
.box-flex0 {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
  width: auto;
}
.hbox.box-flex1,
.vbox.box-flex1,
.box-flex1 {
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex,
.vbox.box-flex,
.box-flex {
  /* Old browsers */
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex2,
.vbox.box-flex2,
.box-flex2 {
  /* Old browsers */
  -webkit-box-flex: 2;
  -moz-box-flex: 2;
  box-flex: 2;
  /* Modern browsers */
  flex: 2;
}
.box-group1 {
  /*  Deprecated */
  -webkit-box-flex-group: 1;
  -moz-box-flex-group: 1;
  box-flex-group: 1;
}
.box-group2 {
  /* Deprecated */
  -webkit-box-flex-group: 2;
  -moz-box-flex-group: 2;
  box-flex-group: 2;
}
.hbox.start,
.vbox.start,
.start {
  /* Old browsers */
  -webkit-box-pack: start;
  -moz-box-pack: start;
  box-pack: start;
  /* Modern browsers */
  justify-content: flex-start;
}
.hbox.end,
.vbox.end,
.end {
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
}
.hbox.center,
.vbox.center,
.center {
  /* Old browsers */
  -webkit-box-pack: center;
  -moz-box-pack: center;
  box-pack: center;
  /* Modern browsers */
  justify-content: center;
}
.hbox.baseline,
.vbox.baseline,
.baseline {
  /* Old browsers */
  -webkit-box-pack: baseline;
  -moz-box-pack: baseline;
  box-pack: baseline;
  /* Modern browsers */
  justify-content: baseline;
}
.hbox.stretch,
.vbox.stretch,
.stretch {
  /* Old browsers */
  -webkit-box-pack: stretch;
  -moz-box-pack: stretch;
  box-pack: stretch;
  /* Modern browsers */
  justify-content: stretch;
}
.hbox.align-start,
.vbox.align-start,
.align-start {
  /* Old browsers */
  -webkit-box-align: start;
  -moz-box-align: start;
  box-align: start;
  /* Modern browsers */
  align-items: flex-start;
}
.hbox.align-end,
.vbox.align-end,
.align-end {
  /* Old browsers */
  -webkit-box-align: end;
  -moz-box-align: end;
  box-align: end;
  /* Modern browsers */
  align-items: flex-end;
}
.hbox.align-center,
.vbox.align-center,
.align-center {
  /* Old browsers */
  -webkit-box-align: center;
  -moz-box-align: center;
  box-align: center;
  /* Modern browsers */
  align-items: center;
}
.hbox.align-baseline,
.vbox.align-baseline,
.align-baseline {
  /* Old browsers */
  -webkit-box-align: baseline;
  -moz-box-align: baseline;
  box-align: baseline;
  /* Modern browsers */
  align-items: baseline;
}
.hbox.align-stretch,
.vbox.align-stretch,
.align-stretch {
  /* Old browsers */
  -webkit-box-align: stretch;
  -moz-box-align: stretch;
  box-align: stretch;
  /* Modern browsers */
  align-items: stretch;
}
div.error {
  margin: 2em;
  text-align: center;
}
div.error > h1 {
  font-size: 500%;
  line-height: normal;
}
div.error > p {
  font-size: 200%;
  line-height: normal;
}
div.traceback-wrapper {
  text-align: left;
  max-width: 800px;
  margin: auto;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
body {
  background-color: #fff;
  /* This makes sure that the body covers the entire window and needs to
       be in a different element than the display: box in wrapper below */
  position: absolute;
  left: 0px;
  right: 0px;
  top: 0px;
  bottom: 0px;
  overflow: visible;
}
body > #header {
  /* Initially hidden to prevent FLOUC */
  display: none;
  background-color: #fff;
  /* Display over codemirror */
  position: relative;
  z-index: 100;
}
body > #header #header-container {
  padding-bottom: 5px;
  padding-top: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
body > #header .header-bar {
  width: 100%;
  height: 1px;
  background: #e7e7e7;
  margin-bottom: -1px;
}
@media print {
  body > #header {
    display: none !important;
  }
}
#header-spacer {
  width: 100%;
  visibility: hidden;
}
@media print {
  #header-spacer {
    display: none;
  }
}
#ipython_notebook {
  padding-left: 0px;
  padding-top: 1px;
  padding-bottom: 1px;
}
@media (max-width: 991px) {
  #ipython_notebook {
    margin-left: 10px;
  }
}
[dir="rtl"] #ipython_notebook {
  float: right !important;
}
#noscript {
  width: auto;
  padding-top: 16px;
  padding-bottom: 16px;
  text-align: center;
  font-size: 22px;
  color: red;
  font-weight: bold;
}
#ipython_notebook img {
  height: 28px;
}
#site {
  width: 100%;
  display: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  overflow: auto;
}
@media print {
  #site {
    height: auto !important;
  }
}
/* Smaller buttons */
.ui-button .ui-button-text {
  padding: 0.2em 0.8em;
  font-size: 77%;
}
input.ui-button {
  padding: 0.3em 0.9em;
}
span#login_widget {
  float: right;
}
span#login_widget > .button,
#logout {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button:focus,
#logout:focus,
span#login_widget > .button.focus,
#logout.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
span#login_widget > .button:hover,
#logout:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active:hover,
#logout:active:hover,
span#login_widget > .button.active:hover,
#logout.active:hover,
.open > .dropdown-togglespan#login_widget > .button:hover,
.open > .dropdown-toggle#logout:hover,
span#login_widget > .button:active:focus,
#logout:active:focus,
span#login_widget > .button.active:focus,
#logout.active:focus,
.open > .dropdown-togglespan#login_widget > .button:focus,
.open > .dropdown-toggle#logout:focus,
span#login_widget > .button:active.focus,
#logout:active.focus,
span#login_widget > .button.active.focus,
#logout.active.focus,
.open > .dropdown-togglespan#login_widget > .button.focus,
.open > .dropdown-toggle#logout.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  background-image: none;
}
span#login_widget > .button.disabled:hover,
#logout.disabled:hover,
span#login_widget > .button[disabled]:hover,
#logout[disabled]:hover,
fieldset[disabled] span#login_widget > .button:hover,
fieldset[disabled] #logout:hover,
span#login_widget > .button.disabled:focus,
#logout.disabled:focus,
span#login_widget > .button[disabled]:focus,
#logout[disabled]:focus,
fieldset[disabled] span#login_widget > .button:focus,
fieldset[disabled] #logout:focus,
span#login_widget > .button.disabled.focus,
#logout.disabled.focus,
span#login_widget > .button[disabled].focus,
#logout[disabled].focus,
fieldset[disabled] span#login_widget > .button.focus,
fieldset[disabled] #logout.focus {
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button .badge,
#logout .badge {
  color: #fff;
  background-color: #333;
}
.nav-header {
  text-transform: none;
}
#header > span {
  margin-top: 10px;
}
.modal_stretch .modal-dialog {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 80vh;
}
.modal_stretch .modal-dialog .modal-body {
  max-height: calc(100vh - 200px);
  overflow: auto;
  flex: 1;
}
@media (min-width: 768px) {
  .modal .modal-dialog {
    width: 700px;
  }
}
@media (min-width: 768px) {
  select.form-control {
    margin-left: 12px;
    margin-right: 12px;
  }
}
/*!
*
* IPython auth
*
*/
.center-nav {
  display: inline-block;
  margin-bottom: -4px;
}
/*!
*
* IPython tree view
*
*/
/* We need an invisible input field on top of the sentense*/
/* "Drag file onto the list ..." */
.alternate_upload {
  background-color: none;
  display: inline;
}
.alternate_upload.form {
  padding: 0;
  margin: 0;
}
.alternate_upload input.fileinput {
  text-align: center;
  vertical-align: middle;
  display: inline;
  opacity: 0;
  z-index: 2;
  width: 12ex;
  margin-right: -12ex;
}
.alternate_upload .btn-upload {
  height: 22px;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
[dir="rtl"] #tabs li {
  float: right;
}
ul#tabs {
  margin-bottom: 4px;
}
[dir="rtl"] ul#tabs {
  margin-right: 0px;
}
ul#tabs a {
  padding-top: 6px;
  padding-bottom: 4px;
}
ul.breadcrumb a:focus,
ul.breadcrumb a:hover {
  text-decoration: none;
}
ul.breadcrumb i.icon-home {
  font-size: 16px;
  margin-right: 4px;
}
ul.breadcrumb span {
  color: #5e5e5e;
}
.list_toolbar {
  padding: 4px 0 4px 0;
  vertical-align: middle;
}
.list_toolbar .tree-buttons {
  padding-top: 1px;
}
[dir="rtl"] .list_toolbar .tree-buttons {
  float: left !important;
}
[dir="rtl"] .list_toolbar .pull-right {
  padding-top: 1px;
  float: left !important;
}
[dir="rtl"] .list_toolbar .pull-left {
  float: right !important;
}
.dynamic-buttons {
  padding-top: 3px;
  display: inline-block;
}
.list_toolbar [class*="span"] {
  min-height: 24px;
}
.list_header {
  font-weight: bold;
  background-color: #EEE;
}
.list_placeholder {
  font-weight: bold;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
}
.list_container {
  margin-top: 4px;
  margin-bottom: 20px;
  border: 1px solid #ddd;
  border-radius: 2px;
}
.list_container > div {
  border-bottom: 1px solid #ddd;
}
.list_container > div:hover .list-item {
  background-color: red;
}
.list_container > div:last-child {
  border: none;
}
.list_item:hover .list_item {
  background-color: #ddd;
}
.list_item a {
  text-decoration: none;
}
.list_item:hover {
  background-color: #fafafa;
}
.list_header > div,
.list_item > div {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
.list_header > div input,
.list_item > div input {
  margin-right: 7px;
  margin-left: 14px;
  vertical-align: baseline;
  line-height: 22px;
  position: relative;
  top: -1px;
}
.list_header > div .item_link,
.list_item > div .item_link {
  margin-left: -1px;
  vertical-align: baseline;
  line-height: 22px;
}
.new-file input[type=checkbox] {
  visibility: hidden;
}
.item_name {
  line-height: 22px;
  height: 24px;
}
.item_icon {
  font-size: 14px;
  color: #5e5e5e;
  margin-right: 7px;
  margin-left: 7px;
  line-height: 22px;
  vertical-align: baseline;
}
.item_buttons {
  line-height: 1em;
  margin-left: -5px;
}
.item_buttons .btn,
.item_buttons .btn-group,
.item_buttons .input-group {
  float: left;
}
.item_buttons > .btn,
.item_buttons > .btn-group,
.item_buttons > .input-group {
  margin-left: 5px;
}
.item_buttons .btn {
  min-width: 13ex;
}
.item_buttons .running-indicator {
  padding-top: 4px;
  color: #5cb85c;
}
.item_buttons .kernel-name {
  padding-top: 4px;
  color: #5bc0de;
  margin-right: 7px;
  float: left;
}
.toolbar_info {
  height: 24px;
  line-height: 24px;
}
.list_item input:not([type=checkbox]) {
  padding-top: 3px;
  padding-bottom: 3px;
  height: 22px;
  line-height: 14px;
  margin: 0px;
}
.highlight_text {
  color: blue;
}
#project_name {
  display: inline-block;
  padding-left: 7px;
  margin-left: -2px;
}
#project_name > .breadcrumb {
  padding: 0px;
  margin-bottom: 0px;
  background-color: transparent;
  font-weight: bold;
}
#tree-selector {
  padding-right: 0px;
}
[dir="rtl"] #tree-selector a {
  float: right;
}
#button-select-all {
  min-width: 50px;
}
#select-all {
  margin-left: 7px;
  margin-right: 2px;
}
.menu_icon {
  margin-right: 2px;
}
.tab-content .row {
  margin-left: 0px;
  margin-right: 0px;
}
.folder_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f114";
}
.folder_icon:before.pull-left {
  margin-right: .3em;
}
.folder_icon:before.pull-right {
  margin-left: .3em;
}
.notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
}
.notebook_icon:before.pull-left {
  margin-right: .3em;
}
.notebook_icon:before.pull-right {
  margin-left: .3em;
}
.running_notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
  color: #5cb85c;
}
.running_notebook_icon:before.pull-left {
  margin-right: .3em;
}
.running_notebook_icon:before.pull-right {
  margin-left: .3em;
}
.file_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f016";
  position: relative;
  top: -2px;
}
.file_icon:before.pull-left {
  margin-right: .3em;
}
.file_icon:before.pull-right {
  margin-left: .3em;
}
#notebook_toolbar .pull-right {
  padding-top: 0px;
  margin-right: -1px;
}
ul#new-menu {
  left: auto;
  right: 0;
}
[dir="rtl"] #new-menu {
  text-align: right;
}
.kernel-menu-icon {
  padding-right: 12px;
  width: 24px;
  content: "\f096";
}
.kernel-menu-icon:before {
  content: "\f096";
}
.kernel-menu-icon-current:before {
  content: "\f00c";
}
#tab_content {
  padding-top: 20px;
}
#running .panel-group .panel {
  margin-top: 3px;
  margin-bottom: 1em;
}
#running .panel-group .panel .panel-heading {
  background-color: #EEE;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
#running .panel-group .panel .panel-heading a:focus,
#running .panel-group .panel .panel-heading a:hover {
  text-decoration: none;
}
#running .panel-group .panel .panel-body {
  padding: 0px;
}
#running .panel-group .panel .panel-body .list_container {
  margin-top: 0px;
  margin-bottom: 0px;
  border: 0px;
  border-radius: 0px;
}
#running .panel-group .panel .panel-body .list_container .list_item {
  border-bottom: 1px solid #ddd;
}
#running .panel-group .panel .panel-body .list_container .list_item:last-child {
  border-bottom: 0px;
}
[dir="rtl"] #running .col-sm-8 {
  float: right !important;
}
.delete-button {
  display: none;
}
.duplicate-button {
  display: none;
}
.rename-button {
  display: none;
}
.shutdown-button {
  display: none;
}
.dynamic-instructions {
  display: inline-block;
  padding-top: 4px;
}
/*!
*
* IPython text editor webapp
*
*/
.selected-keymap i.fa {
  padding: 0px 5px;
}
.selected-keymap i.fa:before {
  content: "\f00c";
}
#mode-menu {
  overflow: auto;
  max-height: 20em;
}
.edit_app #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.edit_app #menubar .navbar {
  /* Use a negative 1 bottom margin, so the border overlaps the border of the
    header */
  margin-bottom: -1px;
}
.dirty-indicator {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator.pull-left {
  margin-right: .3em;
}
.dirty-indicator.pull-right {
  margin-left: .3em;
}
.dirty-indicator-dirty {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-dirty.pull-left {
  margin-right: .3em;
}
.dirty-indicator-dirty.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-clean.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f00c";
}
.dirty-indicator-clean:before.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean:before.pull-right {
  margin-left: .3em;
}
#filename {
  font-size: 16pt;
  display: table;
  padding: 0px 5px;
}
#current-mode {
  padding-left: 5px;
  padding-right: 5px;
}
#texteditor-backdrop {
  padding-top: 20px;
  padding-bottom: 20px;
}
@media not print {
  #texteditor-backdrop {
    background-color: #EEE;
  }
}
@media print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container {
    padding: 0px;
    background-color: #fff;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI colors. */
.ansibold {
  font-weight: bold;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
  color: black;
}
.ansired {
  color: darkred;
}
.ansigreen {
  color: darkgreen;
}
.ansiyellow {
  color: #c4a000;
}
.ansiblue {
  color: darkblue;
}
.ansipurple {
  color: darkviolet;
}
.ansicyan {
  color: steelblue;
}
.ansigray {
  color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
  background-color: black;
}
.ansibgred {
  background-color: red;
}
.ansibggreen {
  background-color: green;
}
.ansibgyellow {
  background-color: yellow;
}
.ansibgblue {
  background-color: blue;
}
.ansibgpurple {
  background-color: magenta;
}
.ansibgcyan {
  background-color: cyan;
}
.ansibggray {
  background-color: gray;
}
div.cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  border-radius: 2px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  width: 100%;
  padding: 5px;
  /* This acts as a spacer between cells, that is outside the border */
  margin: 0px;
  outline: none;
  border-left-width: 1px;
  padding-left: 5px;
  background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
}
div.cell.jupyter-soft-selected {
  border-left-color: #90CAF9;
  border-left-color: #E3F2FD;
  border-left-width: 1px;
  padding-left: 5px;
  border-right-color: #E3F2FD;
  border-right-width: 1px;
  background: #E3F2FD;
}
@media print {
  div.cell.jupyter-soft-selected {
    border-color: transparent;
  }
}
div.cell.selected {
  border-color: #ababab;
  border-left-width: 0px;
  padding-left: 6px;
  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%);
}
@media print {
  div.cell.selected {
    border-color: transparent;
  }
}
div.cell.selected.jupyter-soft-selected {
  border-left-width: 0;
  padding-left: 6px;
  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%);
}
.edit_mode div.cell.selected {
  border-color: #66BB6A;
  border-left-width: 0px;
  padding-left: 6px;
  background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%);
}
@media print {
  .edit_mode div.cell.selected {
    border-color: transparent;
  }
}
.prompt {
  /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
  min-width: 14ex;
  /* This padding is tuned to match the padding on the CodeMirror editor. */
  padding: 0.4em;
  margin: 0px;
  font-family: monospace;
  text-align: right;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
  /* Don't highlight prompt number selection */
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /* Use default cursor */
  cursor: default;
}
@media (max-width: 540px) {
  .prompt {
    text-align: left;
  }
}
div.inner_cell {
  min-width: 0;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
  border: 1px solid #cfcfcf;
  border-radius: 2px;
  background: #f7f7f7;
  line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
   is no content in the output_subarea and the prompt. The main purpose of this is
   to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
  padding-top: 0;
  padding-bottom: 0;
}
div.unrecognized_cell {
  padding: 5px 5px 5px 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.unrecognized_cell .inner_cell {
  border-radius: 2px;
  padding: 5px;
  font-weight: bold;
  color: red;
  border: 1px solid #cfcfcf;
  background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
  color: inherit;
  text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
  color: inherit;
  text-decoration: none;
}
@media (max-width: 540px) {
  div.unrecognized_cell > div.prompt {
    display: none;
  }
}
div.code_cell {
  /* avoid page breaking on code cells when printing */
}
@media print {
  div.code_cell {
    page-break-inside: avoid;
  }
}
/* any special styling for code cells that are currently running goes here */
div.input {
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.input {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
  color: #303F9F;
  border-top: 1px solid transparent;
}
div.input_area > div.highlight {
  margin: 0.4em;
  border: none;
  padding: 0px;
  background-color: transparent;
}
div.input_area > div.highlight > pre {
  margin: 0px;
  border: none;
  padding: 0px;
  background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
 * monospace font with inconsistent normal/bold/italic height.  See
 * notebookmain.js.  Such fonts will have keywords vertically offset with
 * respect to the rest of the text.  The user should select a better font.
 * See: https://github.com/ipython/ipython/issues/1503
 *
 * .CodeMirror span {
 *      vertical-align: bottom;
 * }
 */
.CodeMirror {
  line-height: 1.21429em;
  /* Changed from 1em to our global default */
  font-size: 14px;
  height: auto;
  /* Changed to auto to autogrow */
  background: none;
  /* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
  /*  The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
  /*  We have found that if it is visible, vertical scrollbars appear with font size changes.*/
  overflow-y: hidden;
  overflow-x: auto;
}
.CodeMirror-lines {
  /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
  /* we have set a different line-height and want this to scale with that. */
  padding: 0.4em;
}
.CodeMirror-linenumber {
  padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.CodeMirror pre {
  /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
  /* .CodeMirror-lines */
  padding: 0;
  border: 0;
  border-radius: 0;
}
/*

Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme

*/
.highlight-base {
  color: #000;
}
.highlight-variable {
  color: #000;
}
.highlight-variable-2 {
  color: #1a1a1a;
}
.highlight-variable-3 {
  color: #333333;
}
.highlight-string {
  color: #BA2121;
}
.highlight-comment {
  color: #408080;
  font-style: italic;
}
.highlight-number {
  color: #080;
}
.highlight-atom {
  color: #88F;
}
.highlight-keyword {
  color: #008000;
  font-weight: bold;
}
.highlight-builtin {
  color: #008000;
}
.highlight-error {
  color: #f00;
}
.highlight-operator {
  color: #AA22FF;
  font-weight: bold;
}
.highlight-meta {
  color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
  color: #00f;
}
.highlight-string-2 {
  color: #f50;
}
.highlight-qualifier {
  color: #555;
}
.highlight-bracket {
  color: #997;
}
.highlight-tag {
  color: #170;
}
.highlight-attribute {
  color: #00c;
}
.highlight-header {
  color: blue;
}
.highlight-quote {
  color: #090;
}
.highlight-link {
  color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
  color: #008000;
  font-weight: bold;
}
.cm-s-ipython span.cm-atom {
  color: #88F;
}
.cm-s-ipython span.cm-number {
  color: #080;
}
.cm-s-ipython span.cm-def {
  color: #00f;
}
.cm-s-ipython span.cm-variable {
  color: #000;
}
.cm-s-ipython span.cm-operator {
  color: #AA22FF;
  font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
  color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
  color: #333333;
}
.cm-s-ipython span.cm-comment {
  color: #408080;
  font-style: italic;
}
.cm-s-ipython span.cm-string {
  color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
  color: #f50;
}
.cm-s-ipython span.cm-meta {
  color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
  color: #555;
}
.cm-s-ipython span.cm-builtin {
  color: #008000;
}
.cm-s-ipython span.cm-bracket {
  color: #997;
}
.cm-s-ipython span.cm-tag {
  color: #170;
}
.cm-s-ipython span.cm-attribute {
  color: #00c;
}
.cm-s-ipython span.cm-header {
  color: blue;
}
.cm-s-ipython span.cm-quote {
  color: #090;
}
.cm-s-ipython span.cm-link {
  color: #00c;
}
.cm-s-ipython span.cm-error {
  color: #f00;
}
.cm-s-ipython span.cm-tab {
  background: url();
  background-position: right;
  background-repeat: no-repeat;
}
div.output_wrapper {
  /* this position must be relative to enable descendents to be absolute within it */
  position: relative;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
  /* ideally, this would be max-height, but FF barfs all over that */
  height: 24em;
  /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
  width: 100%;
  overflow: auto;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
  margin: 0px;
  padding: 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
div.out_prompt_overlay {
  height: 100%;
  padding: 0px 0.4em;
  position: absolute;
  border-radius: 2px;
}
div.out_prompt_overlay:hover {
  /* use inner shadow to get border that is computed the same on WebKit/FF */
  -webkit-box-shadow: inset 0 0 1px #000;
  box-shadow: inset 0 0 1px #000;
  background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
  color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
  padding: 0px;
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.output_area .MathJax_Display {
  text-align: left !important;
}
div.output_area .rendered_html table {
  margin-left: 0;
  margin-right: 0;
}
div.output_area .rendered_html img {
  margin-left: 0;
  margin-right: 0;
}
div.output_area img,
div.output_area svg {
  max-width: 100%;
  height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
  max-width: none;
}
/* This is needed to protect the pre formating from global settings such
   as that of bootstrap */
.output {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.output_area {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
div.output_area pre {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  color: black;
  background-color: transparent;
  border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
   the prompt div. */
div.output_subarea {
  overflow-x: auto;
  padding: 0.4em;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
  max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
  overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
   output types */
/* all text output has this class: */
div.output_text {
  text-align: left;
  color: #000;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
  background: #fdd;
  /* very light red background for stderr */
}
div.output_latex {
  text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
  padding: 0;
}
.js-error {
  color: darkred;
}
/* raw_input styles */
div.raw_input_container {
  line-height: 1.21429em;
  padding-top: 5px;
}
pre.raw_input_prompt {
  /* nothing needed here. */
}
input.raw_input {
  font-family: monospace;
  font-size: inherit;
  color: inherit;
  width: auto;
  /* make sure input baseline aligns with prompt */
  vertical-align: baseline;
  /* padding + margin = 0.5em between prompt and cursor */
  padding: 0em 0.25em;
  margin: 0em 0.25em;
}
input.raw_input:focus {
  box-shadow: none;
}
p.p-space {
  margin-bottom: 10px;
}
div.output_unrecognized {
  padding: 5px;
  font-weight: bold;
  color: red;
}
div.output_unrecognized a {
  color: inherit;
  text-decoration: none;
}
div.output_unrecognized a:hover {
  color: inherit;
  text-decoration: none;
}
.rendered_html {
  color: #000;
  /* any extras will just be numbers: */
}
.rendered_html em {
  font-style: italic;
}
.rendered_html strong {
  font-weight: bold;
}
.rendered_html u {
  text-decoration: underline;
}
.rendered_html :link {
  text-decoration: underline;
}
.rendered_html :visited {
  text-decoration: underline;
}
.rendered_html h1 {
  font-size: 185.7%;
  margin: 1.08em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h2 {
  font-size: 157.1%;
  margin: 1.27em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h3 {
  font-size: 128.6%;
  margin: 1.55em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h4 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h5 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h6 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h1:first-child {
  margin-top: 0.538em;
}
.rendered_html h2:first-child {
  margin-top: 0.636em;
}
.rendered_html h3:first-child {
  margin-top: 0.777em;
}
.rendered_html h4:first-child {
  margin-top: 1em;
}
.rendered_html h5:first-child {
  margin-top: 1em;
}
.rendered_html h6:first-child {
  margin-top: 1em;
}
.rendered_html ul {
  list-style: disc;
  margin: 0em 2em;
  padding-left: 0px;
}
.rendered_html ul ul {
  list-style: square;
  margin: 0em 2em;
}
.rendered_html ul ul ul {
  list-style: circle;
  margin: 0em 2em;
}
.rendered_html ol {
  list-style: decimal;
  margin: 0em 2em;
  padding-left: 0px;
}
.rendered_html ol ol {
  list-style: upper-alpha;
  margin: 0em 2em;
}
.rendered_html ol ol ol {
  list-style: lower-alpha;
  margin: 0em 2em;
}
.rendered_html ol ol ol ol {
  list-style: lower-roman;
  margin: 0em 2em;
}
.rendered_html ol ol ol ol ol {
  list-style: decimal;
  margin: 0em 2em;
}
.rendered_html * + ul {
  margin-top: 1em;
}
.rendered_html * + ol {
  margin-top: 1em;
}
.rendered_html hr {
  color: black;
  background-color: black;
}
.rendered_html pre {
  margin: 1em 2em;
}
.rendered_html pre,
.rendered_html code {
  border: 0;
  background-color: #fff;
  color: #000;
  font-size: 100%;
  padding: 0px;
}
.rendered_html blockquote {
  margin: 1em 2em;
}
.rendered_html table {
  margin-left: auto;
  margin-right: auto;
  border: 1px solid black;
  border-collapse: collapse;
}
.rendered_html tr,
.rendered_html th,
.rendered_html td {
  border: 1px solid black;
  border-collapse: collapse;
  margin: 1em 2em;
}
.rendered_html td,
.rendered_html th {
  text-align: left;
  vertical-align: middle;
  padding: 4px;
}
.rendered_html th {
  font-weight: bold;
}
.rendered_html * + table {
  margin-top: 1em;
}
.rendered_html p {
  text-align: left;
}
.rendered_html * + p {
  margin-top: 1em;
}
.rendered_html img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.rendered_html * + img {
  margin-top: 1em;
}
.rendered_html img,
.rendered_html svg {
  max-width: 100%;
  height: auto;
}
.rendered_html img.unconfined,
.rendered_html svg.unconfined {
  max-width: none;
}
div.text_cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.text_cell > div.prompt {
    display: none;
  }
}
div.text_cell_render {
  /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
  outline: none;
  resize: none;
  width: inherit;
  border-style: none;
  padding: 0.5em 0.5em 0.5em 0.4em;
  color: #000;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
a.anchor-link:link {
  text-decoration: none;
  padding: 0px 20px;
  visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
  visibility: visible;
}
.text_cell.rendered .input_area {
  display: none;
}
.text_cell.rendered .rendered_html {
  overflow-x: auto;
  overflow-y: hidden;
}
.text_cell.unrendered .text_cell_render {
  display: none;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
  font-weight: bold;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
  font-size: 185.7%;
}
.cm-header-2 {
  font-size: 157.1%;
}
.cm-header-3 {
  font-size: 128.6%;
}
.cm-header-4 {
  font-size: 110%;
}
.cm-header-5 {
  font-size: 100%;
  font-style: italic;
}
.cm-header-6 {
  font-size: 100%;
  font-style: italic;
}
/*!
*
* IPython notebook webapp
*
*/
@media (max-width: 767px) {
  .notebook_app {
    padding-left: 0px;
    padding-right: 0px;
  }
}
#ipython-main-app {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook_panel {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook {
  font-size: 14px;
  line-height: 20px;
  overflow-y: hidden;
  overflow-x: auto;
  width: 100%;
  /* This spaces the page away from the edge of the notebook area */
  padding-top: 20px;
  margin: 0px;
  outline: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  min-height: 100%;
}
@media not print {
  #notebook-container {
    padding: 15px;
    background-color: #fff;
    min-height: 0;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
@media print {
  #notebook-container {
    width: 100%;
  }
}
div.ui-widget-content {
  border: 1px solid #ababab;
  outline: none;
}
pre.dialog {
  background-color: #f7f7f7;
  border: 1px solid #ddd;
  border-radius: 2px;
  padding: 0.4em;
  padding-left: 2em;
}
p.dialog {
  padding: 0.2em;
}
/* Word-wrap output correctly.  This is the CSS3 spelling, though Firefox seems
   to not honor it correctly.  Webkit browsers (Chrome, rekonq, Safari) do.
 */
pre,
code,
kbd,
samp {
  white-space: pre-wrap;
}
#fonttest {
  font-family: monospace;
}
p {
  margin-bottom: 0;
}
.end_space {
  min-height: 100px;
  transition: height .2s ease;
}
.notebook_app > #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
@media not print {
  .notebook_app {
    background-color: #EEE;
  }
}
kbd {
  border-style: solid;
  border-width: 1px;
  box-shadow: none;
  margin: 2px;
  padding-left: 2px;
  padding-right: 2px;
  padding-top: 1px;
  padding-bottom: 1px;
}
/* CSS for the cell toolbar */
.celltoolbar {
  border: thin solid #CFCFCF;
  border-bottom: none;
  background: #EEE;
  border-radius: 2px 2px 0px 0px;
  width: 100%;
  height: 29px;
  padding-right: 4px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
  display: -webkit-flex;
}
@media print {
  .celltoolbar {
    display: none;
  }
}
.ctb_hideshow {
  display: none;
  vertical-align: bottom;
}
/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
   Cell toolbars are only shown when the ctb_global_show class is also set.
*/
.ctb_global_show .ctb_show.ctb_hideshow {
  display: block;
}
.ctb_global_show .ctb_show + .input_area,
.ctb_global_show .ctb_show + div.text_cell_input,
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border-top-right-radius: 0px;
  border-top-left-radius: 0px;
}
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border: 1px solid #cfcfcf;
}
.celltoolbar {
  font-size: 87%;
  padding-top: 3px;
}
.celltoolbar select {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
  width: inherit;
  font-size: inherit;
  height: 22px;
  padding: 0px;
  display: inline-block;
}
.celltoolbar select:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.celltoolbar select::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.celltoolbar select:-ms-input-placeholder {
  color: #999;
}
.celltoolbar select::-webkit-input-placeholder {
  color: #999;
}
.celltoolbar select::-ms-expand {
  border: 0;
  background-color: transparent;
}
.celltoolbar select[disabled],
.celltoolbar select[readonly],
fieldset[disabled] .celltoolbar select {
  background-color: #eeeeee;
  opacity: 1;
}
.celltoolbar select[disabled],
fieldset[disabled] .celltoolbar select {
  cursor: not-allowed;
}
textarea.celltoolbar select {
  height: auto;
}
select.celltoolbar select {
  height: 30px;
  line-height: 30px;
}
textarea.celltoolbar select,
select[multiple].celltoolbar select {
  height: auto;
}
.celltoolbar label {
  margin-left: 5px;
  margin-right: 5px;
}
.completions {
  position: absolute;
  z-index: 110;
  overflow: hidden;
  border: 1px solid #ababab;
  border-radius: 2px;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  line-height: 1;
}
.completions select {
  background: white;
  outline: none;
  border: none;
  padding: 0px;
  margin: 0px;
  overflow: auto;
  font-family: monospace;
  font-size: 110%;
  color: #000;
  width: auto;
}
.completions select option.context {
  color: #286090;
}
#kernel_logo_widget {
  float: right !important;
  float: right;
}
#kernel_logo_widget .current_kernel_logo {
  display: none;
  margin-top: -1px;
  margin-bottom: -1px;
  width: 32px;
  height: 32px;
}
#menubar {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  margin-top: 1px;
}
#menubar .navbar {
  border-top: 1px;
  border-radius: 0px 0px 2px 2px;
  margin-bottom: 0px;
}
#menubar .navbar-toggle {
  float: left;
  padding-top: 7px;
  padding-bottom: 7px;
  border: none;
}
#menubar .navbar-collapse {
  clear: left;
}
.nav-wrapper {
  border-bottom: 1px solid #e7e7e7;
}
i.menu-icon {
  padding-top: 4px;
}
ul#help_menu li a {
  overflow: hidden;
  padding-right: 2.2em;
}
ul#help_menu li a i {
  margin-right: -1.2em;
}
.dropdown-submenu {
  position: relative;
}
.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
}
.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}
.dropdown-submenu > a:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: block;
  content: "\f0da";
  float: right;
  color: #333333;
  margin-top: 2px;
  margin-right: -10px;
}
.dropdown-submenu > a:after.pull-left {
  margin-right: .3em;
}
.dropdown-submenu > a:after.pull-right {
  margin-left: .3em;
}
.dropdown-submenu:hover > a:after {
  color: #262626;
}
.dropdown-submenu.pull-left {
  float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
  left: -100%;
  margin-left: 10px;
}
#notification_area {
  float: right !important;
  float: right;
  z-index: 10;
}
.indicator_area {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
#kernel_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  border-left: 1px solid;
}
#kernel_indicator .kernel_indicator_name {
  padding-left: 5px;
  padding-right: 5px;
}
#modal_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
#readonly-indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  margin-top: 2px;
  margin-bottom: 0px;
  margin-left: 0px;
  margin-right: 0px;
  display: none;
}
.modal_indicator:before {
  width: 1.28571429em;
  text-align: center;
}
.edit_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f040";
}
.edit_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.edit_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.command_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ' ';
}
.command_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.command_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.kernel_idle_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f10c";
}
.kernel_idle_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_idle_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_busy_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f111";
}
.kernel_busy_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_busy_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_dead_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f1e2";
}
.kernel_dead_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_dead_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_disconnected_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f127";
}
.kernel_disconnected_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_disconnected_icon:before.pull-right {
  margin-left: .3em;
}
.notification_widget {
  color: #777;
  z-index: 10;
  background: rgba(240, 240, 240, 0.5);
  margin-right: 4px;
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget:focus,
.notification_widget.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.notification_widget:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active:hover,
.notification_widget.active:hover,
.open > .dropdown-toggle.notification_widget:hover,
.notification_widget:active:focus,
.notification_widget.active:focus,
.open > .dropdown-toggle.notification_widget:focus,
.notification_widget:active.focus,
.notification_widget.active.focus,
.open > .dropdown-toggle.notification_widget.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  background-image: none;
}
.notification_widget.disabled:hover,
.notification_widget[disabled]:hover,
fieldset[disabled] .notification_widget:hover,
.notification_widget.disabled:focus,
.notification_widget[disabled]:focus,
fieldset[disabled] .notification_widget:focus,
.notification_widget.disabled.focus,
.notification_widget[disabled].focus,
fieldset[disabled] .notification_widget.focus {
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget .badge {
  color: #fff;
  background-color: #333;
}
.notification_widget.warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning:focus,
.notification_widget.warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.notification_widget.warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active:hover,
.notification_widget.warning.active:hover,
.open > .dropdown-toggle.notification_widget.warning:hover,
.notification_widget.warning:active:focus,
.notification_widget.warning.active:focus,
.open > .dropdown-toggle.notification_widget.warning:focus,
.notification_widget.warning:active.focus,
.notification_widget.warning.active.focus,
.open > .dropdown-toggle.notification_widget.warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  background-image: none;
}
.notification_widget.warning.disabled:hover,
.notification_widget.warning[disabled]:hover,
fieldset[disabled] .notification_widget.warning:hover,
.notification_widget.warning.disabled:focus,
.notification_widget.warning[disabled]:focus,
fieldset[disabled] .notification_widget.warning:focus,
.notification_widget.warning.disabled.focus,
.notification_widget.warning[disabled].focus,
fieldset[disabled] .notification_widget.warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.notification_widget.success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success:focus,
.notification_widget.success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.notification_widget.success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active:hover,
.notification_widget.success.active:hover,
.open > .dropdown-toggle.notification_widget.success:hover,
.notification_widget.success:active:focus,
.notification_widget.success.active:focus,
.open > .dropdown-toggle.notification_widget.success:focus,
.notification_widget.success:active.focus,
.notification_widget.success.active.focus,
.open > .dropdown-toggle.notification_widget.success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  background-image: none;
}
.notification_widget.success.disabled:hover,
.notification_widget.success[disabled]:hover,
fieldset[disabled] .notification_widget.success:hover,
.notification_widget.success.disabled:focus,
.notification_widget.success[disabled]:focus,
fieldset[disabled] .notification_widget.success:focus,
.notification_widget.success.disabled.focus,
.notification_widget.success[disabled].focus,
fieldset[disabled] .notification_widget.success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.notification_widget.info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info:focus,
.notification_widget.info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.notification_widget.info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active:hover,
.notification_widget.info.active:hover,
.open > .dropdown-toggle.notification_widget.info:hover,
.notification_widget.info:active:focus,
.notification_widget.info.active:focus,
.open > .dropdown-toggle.notification_widget.info:focus,
.notification_widget.info:active.focus,
.notification_widget.info.active.focus,
.open > .dropdown-toggle.notification_widget.info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  background-image: none;
}
.notification_widget.info.disabled:hover,
.notification_widget.info[disabled]:hover,
fieldset[disabled] .notification_widget.info:hover,
.notification_widget.info.disabled:focus,
.notification_widget.info[disabled]:focus,
fieldset[disabled] .notification_widget.info:focus,
.notification_widget.info.disabled.focus,
.notification_widget.info[disabled].focus,
fieldset[disabled] .notification_widget.info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.notification_widget.danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger:focus,
.notification_widget.danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.notification_widget.danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active:hover,
.notification_widget.danger.active:hover,
.open > .dropdown-toggle.notification_widget.danger:hover,
.notification_widget.danger:active:focus,
.notification_widget.danger.active:focus,
.open > .dropdown-toggle.notification_widget.danger:focus,
.notification_widget.danger:active.focus,
.notification_widget.danger.active.focus,
.open > .dropdown-toggle.notification_widget.danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  background-image: none;
}
.notification_widget.danger.disabled:hover,
.notification_widget.danger[disabled]:hover,
fieldset[disabled] .notification_widget.danger:hover,
.notification_widget.danger.disabled:focus,
.notification_widget.danger[disabled]:focus,
fieldset[disabled] .notification_widget.danger:focus,
.notification_widget.danger.disabled.focus,
.notification_widget.danger[disabled].focus,
fieldset[disabled] .notification_widget.danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger .badge {
  color: #d9534f;
  background-color: #fff;
}
div#pager {
  background-color: #fff;
  font-size: 14px;
  line-height: 20px;
  overflow: hidden;
  display: none;
  position: fixed;
  bottom: 0px;
  width: 100%;
  max-height: 50%;
  padding-top: 8px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  /* Display over codemirror */
  z-index: 100;
  /* Hack which prevents jquery ui resizable from changing top. */
  top: auto !important;
}
div#pager pre {
  line-height: 1.21429em;
  color: #000;
  background-color: #f7f7f7;
  padding: 0.4em;
}
div#pager #pager-button-area {
  position: absolute;
  top: 8px;
  right: 20px;
}
div#pager #pager-contents {
  position: relative;
  overflow: auto;
  width: 100%;
  height: 100%;
}
div#pager #pager-contents #pager-container {
  position: relative;
  padding: 15px 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
div#pager .ui-resizable-handle {
  top: 0px;
  height: 8px;
  background: #f7f7f7;
  border-top: 1px solid #cfcfcf;
  border-bottom: 1px solid #cfcfcf;
  /* This injects handle bars (a short, wide = symbol) for 
        the resize handle. */
}
div#pager .ui-resizable-handle::after {
  content: '';
  top: 2px;
  left: 50%;
  height: 3px;
  width: 30px;
  margin-left: -15px;
  position: absolute;
  border-top: 1px solid #cfcfcf;
}
.quickhelp {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  line-height: 1.8em;
}
.shortcut_key {
  display: inline-block;
  width: 21ex;
  text-align: right;
  font-family: monospace;
}
.shortcut_descr {
  display: inline-block;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
span.save_widget {
  margin-top: 6px;
}
span.save_widget span.filename {
  height: 1em;
  line-height: 1em;
  padding: 3px;
  margin-left: 16px;
  border: none;
  font-size: 146.5%;
  border-radius: 2px;
}
span.save_widget span.filename:hover {
  background-color: #e6e6e6;
}
span.checkpoint_status,
span.autosave_status {
  font-size: small;
}
@media (max-width: 767px) {
  span.save_widget {
    font-size: small;
  }
  span.checkpoint_status,
  span.autosave_status {
    display: none;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  span.checkpoint_status {
    display: none;
  }
  span.autosave_status {
    font-size: x-small;
  }
}
.toolbar {
  padding: 0px;
  margin-left: -5px;
  margin-top: 2px;
  margin-bottom: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.toolbar select,
.toolbar label {
  width: auto;
  vertical-align: middle;
  margin-right: 2px;
  margin-bottom: 0px;
  display: inline;
  font-size: 92%;
  margin-left: 0.3em;
  margin-right: 0.3em;
  padding: 0px;
  padding-top: 3px;
}
.toolbar .btn {
  padding: 2px 8px;
}
.toolbar .btn-group {
  margin-top: 0px;
  margin-left: 5px;
}
#maintoolbar {
  margin-bottom: -3px;
  margin-top: -8px;
  border: 0px;
  min-height: 27px;
  margin-left: 0px;
  padding-top: 11px;
  padding-bottom: 3px;
}
#maintoolbar .navbar-text {
  float: none;
  vertical-align: middle;
  text-align: right;
  margin-left: 5px;
  margin-right: 0px;
  margin-top: 0px;
}
.select-xs {
  height: 24px;
}
.pulse,
.dropdown-menu > li > a.pulse,
li.pulse > a.dropdown-toggle,
li.pulse.open > a.dropdown-toggle {
  background-color: #F37626;
  color: white;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
 * of chance of beeing generated from the ../less/[samename].less file, you can
 * try to get back the less file by reverting somme commit in history
 **/
/*
 * We'll try to get something pretty, so we
 * have some strange css to have the scroll bar on
 * the left with fix button on the top right of the tooltip
 */
@-moz-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-moz-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/*properties of tooltip after "expand"*/
.bigtooltip {
  overflow: auto;
  height: 200px;
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
}
/*properties of tooltip before "expand"*/
.smalltooltip {
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 80px;
}
.tooltipbuttons {
  position: absolute;
  padding-right: 15px;
  top: 0px;
  right: 0px;
}
.tooltiptext {
  /*avoid the button to overlap on some docstring*/
  padding-right: 30px;
}
.ipython_tooltip {
  max-width: 700px;
  /*fade-in animation when inserted*/
  -webkit-animation: fadeOut 400ms;
  -moz-animation: fadeOut 400ms;
  animation: fadeOut 400ms;
  -webkit-animation: fadeIn 400ms;
  -moz-animation: fadeIn 400ms;
  animation: fadeIn 400ms;
  vertical-align: middle;
  background-color: #f7f7f7;
  overflow: visible;
  border: #ababab 1px solid;
  outline: none;
  padding: 3px;
  margin: 0px;
  padding-left: 7px;
  font-family: monospace;
  min-height: 50px;
  -moz-box-shadow: 0px 6px 10px -1px #adadad;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  border-radius: 2px;
  position: absolute;
  z-index: 1000;
}
.ipython_tooltip a {
  float: right;
}
.ipython_tooltip .tooltiptext pre {
  border: 0;
  border-radius: 0;
  font-size: 100%;
  background-color: #f7f7f7;
}
.pretooltiparrow {
  left: 0px;
  margin: 0px;
  top: -16px;
  width: 40px;
  height: 16px;
  overflow: hidden;
  position: absolute;
}
.pretooltiparrow:before {
  background-color: #f7f7f7;
  border: 1px #ababab solid;
  z-index: 11;
  content: "";
  position: absolute;
  left: 15px;
  top: 10px;
  width: 25px;
  height: 25px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}
ul.typeahead-list i {
  margin-left: -10px;
  width: 18px;
}
ul.typeahead-list {
  max-height: 80vh;
  overflow: auto;
}
ul.typeahead-list > li > a {
  /** Firefox bug **/
  /* see https://github.com/jupyter/notebook/issues/559 */
  white-space: normal;
}
.cmd-palette .modal-body {
  padding: 7px;
}
.cmd-palette form {
  background: white;
}
.cmd-palette input {
  outline: none;
}
.no-shortcut {
  display: none;
}
.command-shortcut:before {
  content: "(command)";
  padding-right: 3px;
  color: #777777;
}
.edit-shortcut:before {
  content: "(edit)";
  padding-right: 3px;
  color: #777777;
}
#find-and-replace #replace-preview .match,
#find-and-replace #replace-preview .insert {
  background-color: #BBDEFB;
  border-color: #90CAF9;
  border-style: solid;
  border-width: 1px;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .match {
  background-color: #FFCDD2;
  border-color: #EF9A9A;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .insert {
  background-color: #C8E6C9;
  border-color: #A5D6A7;
  border-radius: 0px;
}
#find-and-replace #replace-preview {
  max-height: 60vh;
  overflow: auto;
}
#find-and-replace #replace-preview pre {
  padding: 5px 10px;
}
.terminal-app {
  background: #EEE;
}
.terminal-app #header {
  background: #fff;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.terminal-app .terminal {
  width: 100%;
  float: left;
  font-family: monospace;
  color: white;
  background: black;
  padding: 0.4em;
  border-radius: 2px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
}
.terminal-app .terminal,
.terminal-app .terminal dummy-screen {
  line-height: 1em;
  font-size: 14px;
}
.terminal-app .terminal .xterm-rows {
  padding: 10px;
}
.terminal-app .terminal-cursor {
  color: black;
  background: white;
}
.terminal-app #terminado-container {
  margin-top: 20px;
}
/*# sourceMappingURL=style.min.css.map */
    </style>
<style type="text/css">
    .highlight .hll { background-color: #ffffcc }
.highlight  { background: #f8f8f8; }
.highlight .c { color: #408080; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #7D9029 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #666666 } /* Literal.Number.Bin */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0000FF } /* Name.Function.Magic */
.highlight .vc { color: #19177C } /* Name.Variable.Class */
.highlight .vg { color: #19177C } /* Name.Variable.Global */
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
.highlight .vm { color: #19177C } /* Name.Variable.Magic */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
    </style>
<style type="text/css">
    
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }

.ansi-bold { font-weight: bold; }

    </style>


<style type="text/css">
/* Overrides of notebook CSS for static HTML export */
body {
  overflow: visible;
  padding: 8px;
}

div#notebook {
  overflow: visible;
  border-top: none;
}@media print {
  div.cell {
    display: block;
    page-break-inside: avoid;
  } 
  div.output_wrapper { 
    display: block;
    page-break-inside: avoid; 
  }
  div.output { 
    display: block;
    page-break-inside: avoid; 
  }
}
</style>

<!-- Custom stylesheet, it must be in the same directory as the html file -->
<link rel="stylesheet" href="custom.css">

<!-- Loading mathjax macro -->
<!-- Load mathjax -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>
    <!-- MathJax configuration -->
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        tex2jax: {
            inlineMath: [ ['$','$'], ["\\(","\\)"] ],
            displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
            processEscapes: true,
            processEnvironments: true
        },
        // Center justify equations in code and markdown cells. Elsewhere
        // we use CSS to left justify single line equations in code cells.
        displayAlign: 'center',
        "HTML-CSS": {
            styles: {'.MathJax_Display': {"margin": 0}},
            linebreaks: { automatic: true }
        }
    });
    </script>
    <!-- End of mathjax configuration --></head>
<body>
  <div tabindex="-1" id="notebook" class="border-box-sizing">
    <div class="container" id="notebook-container">

<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#26426;&#22120;&#23398;&#20064;&#24037;&#31243;&#24072;&#32435;&#31859;&#23398;&#20301;">&#26426;&#22120;&#23398;&#20064;&#24037;&#31243;&#24072;&#32435;&#31859;&#23398;&#20301;<a class="anchor-link" href="#&#26426;&#22120;&#23398;&#20064;&#24037;&#31243;&#24072;&#32435;&#31859;&#23398;&#20301;">&#182;</a></h1><h2 id="&#27169;&#22411;&#35780;&#20215;&#19982;&#39564;&#35777;">&#27169;&#22411;&#35780;&#20215;&#19982;&#39564;&#35777;<a class="anchor-link" href="#&#27169;&#22411;&#35780;&#20215;&#19982;&#39564;&#35777;">&#182;</a></h2><h2 id="&#39033;&#30446;-1:-&#39044;&#27979;&#27874;&#22763;&#39039;&#25151;&#20215;">&#39033;&#30446; 1: &#39044;&#27979;&#27874;&#22763;&#39039;&#25151;&#20215;<a class="anchor-link" href="#&#39033;&#30446;-1:-&#39044;&#27979;&#27874;&#22763;&#39039;&#25151;&#20215;">&#182;</a></h2><p>欢迎来到机器学习工程师纳米学位的第一个项目！在此文件中，有些示例代码已经提供给你，但你还需要实现更多的功能来让项目成功运行。除非有明确要求，你无须修改任何已给出的代码。以<strong>编程练习</strong>开始的标题表示接下来的内容中有需要你必须实现的功能。每一部分都会有详细的指导，需要实现的部分也会在注释中以<strong>TODO</strong>标出。请仔细阅读所有的提示！</p>
<p>除了实现代码外，你还<strong>必须</strong>回答一些与项目和实现有关的问题。每一个需要你回答的问题都会以<strong>'问题 X'</strong>为标题。请仔细阅读每个问题，并且在问题后的<strong>'回答'</strong>文字框中写出完整的答案。你的项目将会根据你对问题的回答和撰写代码所实现的功能来进行评分。</p>
<blockquote><p><strong>提示：</strong>Code 和 Markdown 区域可通过 <strong>Shift + Enter</strong> 快捷键运行。此外，Markdown可以通过双击进入编辑模式。</p>
</blockquote>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#19968;&#27493;.-&#23548;&#20837;&#25968;&#25454;">&#31532;&#19968;&#27493;. &#23548;&#20837;&#25968;&#25454;<a class="anchor-link" href="#&#31532;&#19968;&#27493;.-&#23548;&#20837;&#25968;&#25454;">&#182;</a></h2><p>在这个项目中，你将利用马萨诸塞州波士顿郊区的房屋信息数据训练和测试一个模型，并对模型的性能和预测能力进行测试。通过该数据训练后的好的模型可以被用来对房屋做特定预测---尤其是对房屋的价值。对于房地产经纪等人的日常工作来说，这样的预测模型被证明非常有价值。</p>
<p>此项目的数据集来自<a href="https://archive.ics.uci.edu/ml/datasets.html">UCI机器学习知识库(数据集已下线)</a>。波士顿房屋这些数据于1978年开始统计，共506个数据点，涵盖了麻省波士顿不同郊区房屋14种特征的信息。本项目对原始数据集做了以下处理：</p>
<ul>
<li>有16个<code>'MEDV'</code> 值为50.0的数据点被移除。 这很可能是由于这些数据点包含<strong>遗失</strong>或<strong>看不到的值</strong>。</li>
<li>有1个数据点的 <code>'RM'</code> 值为8.78. 这是一个异常值，已经被移除。</li>
<li>对于本项目，房屋的<code>'RM'</code>， <code>'LSTAT'</code>，<code>'PTRATIO'</code>以及<code>'MEDV'</code>特征是必要的，其余不相关特征已经被移除。</li>
<li><code>'MEDV'</code>特征的值已经过必要的数学转换，可以反映35年来市场的通货膨胀效应。</li>
</ul>
<p>运行下面区域的代码以载入波士顿房屋数据集，以及一些此项目所需的Python库。如果成功返回数据集的大小，表示数据集已载入成功。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[1]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 载入此项目所需要的库</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">pandas</span> <span class="kn">as</span> <span class="nn">pd</span>
<span class="kn">import</span> <span class="nn">visuals</span> <span class="kn">as</span> <span class="nn">vs</span> <span class="c1"># Supplementary code</span>

<span class="c1"># 检查你的Python版本</span>
<span class="kn">from</span> <span class="nn">sys</span> <span class="kn">import</span> <span class="n">version_info</span>
<span class="k">if</span> <span class="n">version_info</span><span class="o">.</span><span class="n">major</span> <span class="o">!=</span> <span class="mi">2</span> <span class="ow">and</span> <span class="n">version_info</span><span class="o">.</span><span class="n">minor</span> <span class="o">!=</span> <span class="mi">7</span><span class="p">:</span>
    <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;请使用Python 2.7来完成此项目&#39;</span><span class="p">)</span>
    
<span class="c1"># 让结果在notebook中显示</span>
<span class="o">%</span><span class="k">matplotlib</span> inline
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[2]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 载入波士顿房屋的数据集</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="s1">&#39;housing.csv&#39;</span><span class="p">)</span>
<span class="n">prices</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">&#39;MEDV&#39;</span><span class="p">]</span>
<span class="n">features</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">drop</span><span class="p">(</span><span class="s1">&#39;MEDV&#39;</span><span class="p">,</span> <span class="n">axis</span> <span class="o">=</span> <span class="mi">1</span><span class="p">)</span>
    
<span class="c1"># 完成</span>
<span class="k">print</span> <span class="s2">&quot;Boston housing dataset has {} data points with {} variables each.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="o">*</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Boston housing dataset has 489 data points with 4 variables each.
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#20108;&#27493;.-&#20998;&#26512;&#25968;&#25454;">&#31532;&#20108;&#27493;. &#20998;&#26512;&#25968;&#25454;<a class="anchor-link" href="#&#31532;&#20108;&#27493;.-&#20998;&#26512;&#25968;&#25454;">&#182;</a></h2><p>在项目的第一个部分，你会对波士顿房地产数据进行初步的观察并给出你的分析。通过对数据的探索来熟悉数据可以让你更好地理解和解释你的结果。</p>
<p>由于这个项目的最终目标是建立一个预测房屋价值的模型，我们需要将数据集分为<strong>特征(features)</strong>和<strong>目标变量(target variable)</strong>。</p>
<ul>
<li><strong>特征</strong> <code>'RM'</code>， <code>'LSTAT'</code>，和 <code>'PTRATIO'</code>，给我们提供了每个数据点的数量相关的信息。</li>
<li><strong>目标变量</strong>：<code>'MEDV'</code>，是我们希望预测的变量。</li>
</ul>
<p>他们分别被存在<code>features</code>和<code>prices</code>两个变量名中。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;-1&#65306;&#22522;&#30784;&#32479;&#35745;&#36816;&#31639;">&#32534;&#31243;&#32451;&#20064; 1&#65306;&#22522;&#30784;&#32479;&#35745;&#36816;&#31639;<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;-1&#65306;&#22522;&#30784;&#32479;&#35745;&#36816;&#31639;">&#182;</a></h3><p>你的第一个编程练习是计算有关波士顿房价的描述统计数据。我们已为你导入了<code>numpy</code>，你需要使用这个库来执行必要的计算。这些统计数据对于分析模型的预测结果非常重要的。
在下面的代码中，你要做的是：</p>
<ul>
<li>计算<code>prices</code>中的<code>'MEDV'</code>的最小值、最大值、均值、中值和标准差；</li>
<li>将运算结果储存在相应的变量中。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[3]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1">#TODO 1</span>

<span class="c1">#目标：计算价值的最小值</span>
<span class="n">minimum_price</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">prices</span><span class="p">)</span>

<span class="c1">#目标：计算价值的最大值</span>
<span class="n">maximum_price</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">prices</span><span class="p">)</span>

<span class="c1">#目标：计算价值的平均值</span>
<span class="n">mean_price</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">prices</span><span class="p">)</span>

<span class="c1">#目标：计算价值的中值</span>
<span class="n">median_price</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">median</span><span class="p">(</span><span class="n">prices</span><span class="p">)</span>

<span class="c1">#目标：计算价值的标准差</span>
<span class="n">std_price</span> <span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">(</span><span class="n">prices</span><span class="p">)</span>

<span class="c1">#目标：输出计算的结果</span>
<span class="k">print</span> <span class="s2">&quot;Statistics for Boston housing dataset:</span><span class="se">\n</span><span class="s2">&quot;</span>
<span class="k">print</span> <span class="s2">&quot;Minimum price: ${:,.2f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">minimum_price</span><span class="p">)</span>
<span class="k">print</span> <span class="s2">&quot;Maximum price: ${:,.2f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">maximum_price</span><span class="p">)</span>
<span class="k">print</span> <span class="s2">&quot;Mean price: ${:,.2f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">mean_price</span><span class="p">)</span>
<span class="k">print</span> <span class="s2">&quot;Median price ${:,.2f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">median_price</span><span class="p">)</span>
<span class="k">print</span> <span class="s2">&quot;Standard deviation of prices: ${:,.2f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">std_price</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Statistics for Boston housing dataset:

Minimum price: $105,000.00
Maximum price: $1,024,800.00
Mean price: $454,342.94
Median price $438,900.00
Standard deviation of prices: $165,171.13
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-1---&#29305;&#24449;&#35266;&#23519;">&#38382;&#39064; 1 - &#29305;&#24449;&#35266;&#23519;<a class="anchor-link" href="#&#38382;&#39064;-1---&#29305;&#24449;&#35266;&#23519;">&#182;</a></h3><p>如前文所述，本项目中我们关注的是其中三个值:<code>'RM'</code>、<code>'LSTAT'</code> 和<code>'PTRATIO'</code>，对每一个数据点:</p>
<ul>
<li><code>'RM'</code> 是该地区中每个房屋的平均房间数量；</li>
<li><code>'LSTAT'</code> 是指该地区有多少百分比的业主属于是低收入阶层（有工作但收入微薄）；</li>
<li><code>'PTRATIO'</code> 是该地区的中学和小学里，学生和老师的数目比（<code>学生/老师</code>）。</li>
</ul>
<p><em>凭直觉，上述三个特征中对每一个来说，你认为增大该特征的数值，<code>'MEDV'</code>的值会是<strong>增大</strong>还是<strong>减小</strong>呢？每一个答案都需要你给出理由。</em></p>
<p><strong>提示：</strong>你预期一个<code>'RM'</code> 值是6的房屋跟<code>'RM'</code> 值是7的房屋相比，价值更高还是更低呢？</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[4]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="kn">as</span> <span class="nn">plt</span>

<span class="k">def</span> <span class="nf">plotScatter</span><span class="p">(</span><span class="n">colName</span><span class="p">):</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">colName</span><span class="p">],</span><span class="n">data</span><span class="p">[</span><span class="s1">&#39;MEDV&#39;</span><span class="p">],</span><span class="s1">&#39;o&#39;</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="n">colName</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;MEDV&#39;</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>

<span class="n">plotScatter</span><span class="p">(</span><span class="s1">&#39;RM&#39;</span><span class="p">)</span>
<span class="n">plotScatter</span><span class="p">(</span><span class="s1">&#39;LSTAT&#39;</span><span class="p">)</span>
<span class="n">plotScatter</span><span class="p">(</span><span class="s1">&#39;PTRATIO&#39;</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
CvhGYPuVXpbcGuCg16W2FbjQzJZ4CQkXAlu9+35pZmu8Y13Z9Fxhx5AQZam+3Yvlv9MGiHYv9Gkf
FzyPa7fsaunz6OTziwrsV6xZ1rNMuE4zHKWc8uiOWwv8IbDbzHZ52/4S2ATcZWYfAV4APuDd903g
94GngUPAhwGcc/vN7LPAD7z9PuOc2+/9/kfAV4Ea8C3vh5hjSIgypcSGlZdZu2lbW92IrVR4aHfu
SprHNZ9HlFY/pzSfX9bjL51U1ZByyzwIOef+lfBxG4ALQvZ3wEcjnusrwFdCtu8A3h6y/Rdhx5Bw
3RpryVqnF7RWAku7F/o0j0tTRQHiU5c7+fyyHH/RRNT5S2V7JFLeYy3t6rQbsZXA0u7clTSPS9vi
jPo8yvT5lanVLd2lICSRejHW0m1h4widXtBaCSztXujTPC5Ni2XJouhJrGX6/NIsNy79SbXjJFaR
U2Kjut0GF1U5cGjuGj9RF7R2q2dD+2MnaR4XVpctqFatsPG98ZNYW/38olK6e5GqnzTmVdRWm3SX
uS6VeO9XQ0NDbseOHXmfRuHlMZ8oar2fwVqVVw8fmRNEwloBYRfCWrXCZWfX2f7EvlmBKXg7q/lS
wff12FoVM5g4NNWTc4h7L8KCcqetqqjPD8KXG5dyMbOdzrmhpP3UEpKO5ZXZFNW9dnByipvWr0oV
FNNUz84zc6sIyQF3PPLinPWIupE0EPX5+cuNy/ygICQdyyuzKS77K+3Fu90stX7M3Ip6L6IWxOs0
aaCs2ZfSXUpMkI7lldnUjeyvTrLUerl6aB6TNqPei6gF8ToNFmXK3pPeURCSjuVVYr8b2V+dZKn1
2+qhUe/F5eee1JNgUYbsPek9dcdJx7JcXbNZp2Mm7Wap9ePqoXHvxdDJx/Uk8aTI2ZeSDWXHJVB2
XDp5V9vutaxe34qRB0LnzBjw7KaLMz8fkXYpO04y1e/faLN6fWkG61VnTfqJxoRECiTNGFVZqpuL
pKGWkEgLOukGS/PYNGNUqrMm/URBSCSlTrrBWnlsUtef5tdIP1F3nEhKnXSDdbMLTfNrpJ+oJSSS
UifdYN3sQst6wTmRXlIQEkmpk26wbneh9Xs2oswf6o4TSamTbjB1oYmEU0tIJKVOusHUhSYSThUT
EqhigohI69JWTFB3nIiI5EZBSEREcqMgJCIiuVEQEhGR3CgIiYhIbpQdl8DM9gHP530eKb0Z+Hne
J5ETvfb5Sa+9uE52zi1N2klBqI+Y2Y40KZH9SK9dr32+6ZfXru44ERHJjYKQiIjkRkGov9yS9wnk
SK99ftJrLzmNCYmISG7UEhIRkdwoCPUJM6uY2ZiZ/XPe55IlM3vOzHab2S4zm1eVZs1s0MzuNrMn
zOxxM/udvM8pC2a20vu8/Z//MLNr8j6vrJjZtWa2x8x+ZGZ3mNnReZ9TJ9Qd1yfM7OPAEHCMc+49
eZ9PVszsOWDIOVfk+RI9YWa3Av/XOfclM1sILHLOTeR9XlkyswowDpzrnCvLfL62mVkd+FfgNOfc
pJndBXzTOffVfM+sfWoJ9QEzOxG4GPhS3uci2TCzY4DfBb4M4Jx7bb4FIM8FwE/mQwAKWADUzGwB
sAh4Kefz6YiCUH/4PPAXwJG8TyQHDviOme00s6vzPpkM/SawD/gHrxv2S2a2OO+TysEHgTvyPoms
OOfGgb8CXgB+Chx0zn0n37PqjIJQyZnZe4CXnXM78z6XnKx1zp0FvBv4qJn9bt4nlJEFwFnAF51z
q4FXgJF8TylbXhfkJcDX8z6XrJjZEuBSYAVwArDYzD6U71l1RkGo/NYCl3hjI3cC55vZ1/I9pew4
517y/n0Z+CfgnHzPKDN7gb3OuUe823fTCErzybuBR51zP8v7RDL0e8Czzrl9zrkp4F7gHTmfU0cU
hErOOXedc+5E59xyGl0T25xzpf5mlJaZLTazN/q/AxcCP8r3rLLhnPt34EUzW+ltugD4cY6nlIfL
mUddcZ4XgDVmtsjMjMbn/njO59SRBXmfgEgH3gr8U+P/IguAf3TOfTvfU8rUnwK3e91SzwAfzvl8
MmNmi4B3Af8j73PJknPuETO7G3gUOAyMUfLKCUrRFhGR3Kg7TkREcqMgJCIiuVEQEhGR3CgIiYhI
bhSEREQkNwpCIgVnZtNetegfmdn9ZjbobV9uZs7MPhvY981mNmVm/zu/MxZJT0FIpPgmnXOrnHNv
B/YDHw3c9wwQrJr+AWBPlicn0gkFIZFy+T5QD9yeBB43syHv9nrgrszPSqRNCkIiJeGtnXMBcF/T
XXcCH/SW9Jim5KX9ZX5REBIpvpqZ7QJ+ARwHPNh0/7dplLC5HNiS8bmJdERBSKT4Jp1zq4CTgYXM
HhPCOfcasBP4BHBP9qcn0j4FIZGScM4dBD4G/LmZVZvu/mvgk865X2R/ZiLtUxASKRHn3BjwGI1l
O4Lb9zjnbs3nrETapyraIiKSG7WEREQkNwpCIiKSGwUhERHJjYKQiIjkRkFIRERyoyAkIiK5URAS
EZHcKAiJiEhu/j9Az3PyS3c9AAAAAABJRU5ErkJggg==
"
>
</div>

</div>

<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
"
>
</div>

</div>

<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
AElFTkSuQmCC
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-1---&#22238;&#31572;&#65306;">&#38382;&#39064; 1 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-1---&#22238;&#31572;&#65306;">&#182;</a></h3><p>从上面三个散点图，从散点的集中趋势，可以猜测：</p>
<p>首先，若增大RM的数值，MEDV会增大。这与购买房子的经验是一致的，大房子的总价总是比小房子的总价贵。</p>
<p>其次，若增大LSTAT的数值，MEDV会减小。因为低收入者多的地方，消费水平较低，他们负担不起总价较贵的房子。</p>
<p>最后，若增大PTRATIO的数值，MEDV可能会减小也可能会增加。从散点图上看不出房价随PTRATIO变化的明显趋势。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;-2:-&#25968;&#25454;&#20998;&#21106;&#19982;&#37325;&#25490;">&#32534;&#31243;&#32451;&#20064; 2: &#25968;&#25454;&#20998;&#21106;&#19982;&#37325;&#25490;<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;-2:-&#25968;&#25454;&#20998;&#21106;&#19982;&#37325;&#25490;">&#182;</a></h3><p>接下来，你需要把波士顿房屋数据集分成训练和测试两个子集。通常在这个过程中，数据也会被重排列，以消除数据集中由于顺序而产生的偏差。
在下面的代码中，你需要</p>
<p>使用 <code>sklearn.model_selection</code> 中的 <code>train_test_split</code>， 将<code>features</code>和<code>prices</code>的数据都分成用于训练的数据子集和用于测试的数据子集。</p>
<ul>
<li>分割比例为：80%的数据用于训练，20%用于测试；</li>
<li>选定一个数值以设定 <code>train_test_split</code> 中的 <code>random_state</code> ，这会确保结果的一致性；</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[5]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># TODO 2</span>

<span class="c1"># 提示： 导入train_test_split</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="kn">import</span> <span class="n">train_test_split</span>
<span class="c1">#train_test_split?</span>
<span class="n">X_train</span><span class="p">,</span> <span class="n">X_test</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">y_test</span> <span class="o">=</span> <span class="n">train_test_split</span><span class="p">(</span><span class="n">features</span><span class="p">,</span> 
                                                    <span class="n">prices</span><span class="p">,</span>
                                                    <span class="n">test_size</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span>
                                                    <span class="n">random_state</span><span class="o">=</span><span class="mi">2018</span><span class="p">)</span>
<span class="c1">#print prices.shape</span>
<span class="c1">#print X_train.info()</span>
<span class="c1">#print &#39;==================&#39;</span>
<span class="c1">#print X_test.info()</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-2---&#35757;&#32451;&#21450;&#27979;&#35797;">&#38382;&#39064; 2 - &#35757;&#32451;&#21450;&#27979;&#35797;<a class="anchor-link" href="#&#38382;&#39064;-2---&#35757;&#32451;&#21450;&#27979;&#35797;">&#182;</a></h3><p><em>将数据集按一定比例分为训练用的数据集和测试用的数据集对学习算法有什么好处？</em></p>
<p><em>如果用模型已经见过的数据，例如部分训练集数据进行测试，又有什么坏处？</em></p>
<p><strong>提示：</strong> 如果没有数据来对模型进行测试，会出现什么问题？</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-2---&#22238;&#31572;:">&#38382;&#39064; 2 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-2---&#22238;&#31572;:">&#182;</a></h3><p>将数据集分成训练集和测试集的好处：可充分利用好有限的数据资源，如果把全部数据仅用来训练，则会因缺乏测试数据而形成过拟合，导致进入坐井观天的误区。</p>
<p>如果用模型已经见过的数据，例如部分训练集数据进行测试。一旦形成过拟合现象，训练出来的模型总是很好地贴合于训练数据。所以无法判别是否发生了过拟合。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#19977;&#27493;.-&#27169;&#22411;&#34913;&#37327;&#26631;&#20934;">&#31532;&#19977;&#27493;. &#27169;&#22411;&#34913;&#37327;&#26631;&#20934;<a class="anchor-link" href="#&#31532;&#19977;&#27493;.-&#27169;&#22411;&#34913;&#37327;&#26631;&#20934;">&#182;</a></h2><p>在项目的第三步中，你需要了解必要的工具和技巧来让你的模型进行预测。用这些工具和技巧对每一个模型的表现做精确的衡量可以极大地增强你预测的信心。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;3&#65306;&#23450;&#20041;&#34913;&#37327;&#26631;&#20934;">&#32534;&#31243;&#32451;&#20064;3&#65306;&#23450;&#20041;&#34913;&#37327;&#26631;&#20934;<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;3&#65306;&#23450;&#20041;&#34913;&#37327;&#26631;&#20934;">&#182;</a></h3><p>如果不能对模型的训练和测试的表现进行量化地评估，我们就很难衡量模型的好坏。通常我们会定义一些衡量标准，这些标准可以通过对某些误差或者拟合程度的计算来得到。在这个项目中，你将通过运算<a href="http://stattrek.com/statistics/dictionary.aspx?definition=coefficient_of_determination"><em>决定系数</em></a> R<sup>2</sup> 来量化模型的表现。模型的决定系数是回归分析中十分常用的统计信息，经常被当作衡量模型预测能力好坏的标准。</p>
<p>R<sup>2</sup>的数值范围从0至1，表示<strong>目标变量</strong>的预测值和实际值之间的相关程度平方的百分比。一个模型的R<sup>2</sup> 值为0还不如直接用<strong>平均值</strong>来预测效果好；而一个R<sup>2</sup> 值为1的模型则可以对目标变量进行完美的预测。从0至1之间的数值，则表示该模型中目标变量中有百分之多少能够用<strong>特征</strong>来解释。<em>模型也可能出现负值的R<sup>2</sup>，这种情况下模型所做预测有时会比直接计算目标变量的平均值差很多。</em></p>
<p>在下方代码的 <code>performance_metric</code> 函数中，你要实现：</p>
<ul>
<li>使用 <code>sklearn.metrics</code> 中的 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.metrics.r2_score.html"><code>r2_score</code></a> 来计算 <code>y_true</code> 和 <code>y_predict</code>的R<sup>2</sup>值，作为对其表现的评判。</li>
<li>将他们的表现评分储存到<code>score</code>变量中。</li>
</ul>
<p>或</p>
<ul>
<li>(可选) 不使用任何外部库，参考<a href="https://en.wikipedia.org/wiki/Coefficient_of_determination">决定系数的定义</a>进行计算，这也可以帮助你更好的理解决定系数在什么情况下等于0或等于1。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[6]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># TODO 3</span>

<span class="c1"># 提示： 导入r2_score</span>
<span class="kn">from</span> <span class="nn">sklearn.metrics</span> <span class="kn">import</span> <span class="n">r2_score</span>
<span class="c1">#r2_score?</span>
<span class="k">def</span> <span class="nf">performance_metric</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_predict</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot;计算并返回预测值相比于预测值的分数&quot;&quot;&quot;</span>
    
    <span class="n">score</span> <span class="o">=</span> <span class="n">r2_score</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_predict</span><span class="p">)</span>

    <span class="k">return</span> <span class="n">score</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[7]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># TODO 3 可选</span>

<span class="c1"># 不允许导入任何计算决定系数的库</span>

<span class="k">def</span> <span class="nf">performance_metric2</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_predict</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot;计算并返回预测值相比于预测值的分数&quot;&quot;&quot;</span>
    
    <span class="n">score</span> <span class="o">=</span> <span class="bp">None</span>

    <span class="k">return</span> <span class="n">score</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-3---&#25311;&#21512;&#31243;&#24230;">&#38382;&#39064; 3 - &#25311;&#21512;&#31243;&#24230;<a class="anchor-link" href="#&#38382;&#39064;-3---&#25311;&#21512;&#31243;&#24230;">&#182;</a></h3><p>假设一个数据集有五个数据且一个模型做出下列目标变量的预测：</p>
<table>
<thead><tr>
<th style="text-align:center">真实数值</th>
<th style="text-align:center">预测数值</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">3.0</td>
<td style="text-align:center">2.5</td>
</tr>
<tr>
<td style="text-align:center">-0.5</td>
<td style="text-align:center">0.0</td>
</tr>
<tr>
<td style="text-align:center">2.0</td>
<td style="text-align:center">2.1</td>
</tr>
<tr>
<td style="text-align:center">7.0</td>
<td style="text-align:center">7.8</td>
</tr>
<tr>
<td style="text-align:center">4.2</td>
<td style="text-align:center">5.3</td>
</tr>
</tbody>
</table>
<p><em>你觉得这个模型已成功地描述了目标变量的变化吗？如果成功，请解释为什么，如果没有，也请给出原因。</em></p>
<p><strong>提示</strong>：运行下方的代码，使用<code>performance_metric</code>函数来计算模型的决定系数。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[8]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 计算这个模型的预测结果的决定系数</span>
<span class="n">score</span> <span class="o">=</span> <span class="n">performance_metric</span><span class="p">([</span><span class="mi">3</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mf">4.2</span><span class="p">],</span> <span class="p">[</span><span class="mf">2.5</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">2.1</span><span class="p">,</span> <span class="mf">7.8</span><span class="p">,</span> <span class="mf">5.3</span><span class="p">])</span>
<span class="k">print</span> <span class="s2">&quot;Model has a coefficient of determination, R^2, of {:.3f}.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">score</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Model has a coefficient of determination, R^2, of 0.923.
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-3---&#22238;&#31572;:">&#38382;&#39064; 3 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-3---&#22238;&#31572;:">&#182;</a></h3><p>R2=0.923表示该模型中目标变量中有92.3%能够用RM,LSTAT,PTRATIO这三个特征来解释。解释比例非常高。这个模型已成功地描述了目标变量的变化。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#22235;&#27493;.-&#20998;&#26512;&#27169;&#22411;&#30340;&#34920;&#29616;">&#31532;&#22235;&#27493;. &#20998;&#26512;&#27169;&#22411;&#30340;&#34920;&#29616;<a class="anchor-link" href="#&#31532;&#22235;&#27493;.-&#20998;&#26512;&#27169;&#22411;&#30340;&#34920;&#29616;">&#182;</a></h2><p>在项目的第四步，我们来看一下不同参数下，模型在训练集和验证集上的表现。这里，我们专注于一个特定的算法（带剪枝的决策树，但这并不是这个项目的重点），和这个算法的一个参数 <code>'max_depth'</code>。用全部训练集训练，选择不同<code>'max_depth'</code> 参数，观察这一参数的变化如何影响模型的表现。画出模型的表现来对于分析过程十分有益，这可以让我们看到一些单看结果看不到的行为。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#23398;&#20064;&#26354;&#32447;">&#23398;&#20064;&#26354;&#32447;<a class="anchor-link" href="#&#23398;&#20064;&#26354;&#32447;">&#182;</a></h3><p>下方区域内的代码会输出四幅图像，它们是一个决策树模型在不同最大深度下的表现。每一条曲线都直观得显示了随着训练数据量的增加，模型学习曲线的在训练集评分和验证集评分的变化，评分使用决定系数R<sup>2</sup>。曲线的阴影区域代表的是该曲线的不确定性（用标准差衡量）。</p>
<p>运行下方区域中的代码，并利用输出的图形回答下面的问题。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[9]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 根据不同的训练集大小，和最大深度，生成学习曲线</span>
<span class="n">vs</span><span class="o">.</span><span class="n">ModelLearning</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
iIiIhn8ASf4QE31s0K4AAAAASUVORK5CYII=
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-4---&#23398;&#20064;&#26354;&#32447;">&#38382;&#39064; 4 - &#23398;&#20064;&#26354;&#32447;<a class="anchor-link" href="#&#38382;&#39064;-4---&#23398;&#20064;&#26354;&#32447;">&#182;</a></h3><p><em>选择上述图像中的其中一个，并给出其最大深度。随着训练数据量的增加，训练集曲线的评分有怎样的变化？验证集曲线呢？如果有更多的训练数据，是否能有效提升模型的表现呢？</em></p>
<p><strong>提示：</strong>学习曲线的评分是否最终会收敛到特定的值？</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-4---&#22238;&#31572;:">&#38382;&#39064; 4 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-4---&#22238;&#31572;:">&#182;</a></h3><p>最大深度为1时，随着训练数据的增加，训练集和验证集两条曲线的评分趋向于稳定在大约0.4多一点的位置。再增加训练数据不能再有效提升模型的表现。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#22797;&#26434;&#24230;&#26354;&#32447;">&#22797;&#26434;&#24230;&#26354;&#32447;<a class="anchor-link" href="#&#22797;&#26434;&#24230;&#26354;&#32447;">&#182;</a></h3><p>下列代码内的区域会输出一幅图像，它展示了一个已经经过训练和验证的决策树模型在不同最大深度条件下的表现。这个图形将包含两条曲线，一个是训练集的变化，一个是验证集的变化。跟<strong>学习曲线</strong>相似，阴影区域代表该曲线的不确定性，模型训练和测试部分的评分都用的 <code>performance_metric</code> 函数。</p>
<p>运行下方区域中的代码，并利用输出的图形并回答下面的两个问题。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[10]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 根据不同的最大深度参数，生成复杂度曲线</span>
<span class="n">vs</span><span class="o">.</span><span class="n">ModelComplexity</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
scRnjDEmqPw/S2X4HSOEXM4AAAAASUVORK5CYII=
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-5---&#20559;&#24046;&#65288;bias&#65289;&#19982;&#26041;&#24046;&#65288;variance&#65289;&#20043;&#38388;&#30340;&#26435;&#34913;&#21462;&#33293;">&#38382;&#39064; 5 - &#20559;&#24046;&#65288;bias&#65289;&#19982;&#26041;&#24046;&#65288;variance&#65289;&#20043;&#38388;&#30340;&#26435;&#34913;&#21462;&#33293;<a class="anchor-link" href="#&#38382;&#39064;-5---&#20559;&#24046;&#65288;bias&#65289;&#19982;&#26041;&#24046;&#65288;variance&#65289;&#20043;&#38388;&#30340;&#26435;&#34913;&#21462;&#33293;">&#182;</a></h3><p><em>当模型以最大深度 1训练时，模型的预测是出现很大的偏差还是出现了很大的方差？当模型以最大深度10训练时，情形又如何呢？图形中的哪些特征能够支持你的结论？</em></p>
<p><strong>提示：</strong> 你如何得知模型是否出现了偏差很大或者方差很大的问题？</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-5---&#22238;&#31572;:">&#38382;&#39064; 5 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-5---&#22238;&#31572;:">&#182;</a></h3><p>图形中，模型以最大深度为1训练时，红点和绿点在得分轴上坐标都处于0.4和0.5之间。说明训练得分和验证得分都较低，此时模型的预测出现了较大的偏差，属于欠拟合。</p>
<p>图形中，模型以最大深度为10训练时，红点和绿点在得分轴上坐标之间的差距逐渐增加到了0.2多。说明训练得分很高但是验证得分较低，两个得分相差较大，此时模型的预测出现了较大的方差。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-6--&#26368;&#20248;&#27169;&#22411;&#30340;&#29468;&#27979;">&#38382;&#39064; 6- &#26368;&#20248;&#27169;&#22411;&#30340;&#29468;&#27979;<a class="anchor-link" href="#&#38382;&#39064;-6--&#26368;&#20248;&#27169;&#22411;&#30340;&#29468;&#27979;">&#182;</a></h3><p><em>结合问题 5 中的图，你认为最大深度是多少的模型能够最好地对未见过的数据进行预测？你得出这个答案的依据是什么？</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-6---&#22238;&#31572;:">&#38382;&#39064; 6 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-6---&#22238;&#31572;:">&#182;</a></h3><p>预测：深度为3时，模型能够较好的对未见过的数据进行预测。因为在深度为3时，验证集的得分达到第二高的位置，而且验证集与训练集之间的得分差异最小。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#20116;&#27493;.-&#36873;&#25321;&#26368;&#20248;&#21442;&#25968;">&#31532;&#20116;&#27493;. &#36873;&#25321;&#26368;&#20248;&#21442;&#25968;<a class="anchor-link" href="#&#31532;&#20116;&#27493;.-&#36873;&#25321;&#26368;&#20248;&#21442;&#25968;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-7--&#32593;&#26684;&#25628;&#32034;&#65288;Grid-Search&#65289;">&#38382;&#39064; 7- &#32593;&#26684;&#25628;&#32034;&#65288;Grid Search&#65289;<a class="anchor-link" href="#&#38382;&#39064;-7--&#32593;&#26684;&#25628;&#32034;&#65288;Grid-Search&#65289;">&#182;</a></h3><p><em>什么是网格搜索法？如何用它来优化模型？</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-7---&#22238;&#31572;:">&#38382;&#39064; 7 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-7---&#22238;&#31572;:">&#182;</a></h3><p>网格搜索法是指定参数值的一种穷举搜索方法，通过将估计函数的参数通过交叉验证的方法进行优化来得到最优的学习算法。 即，将各个参数可能的取值进行排列组合，列出所有可能的组合结果生成“网格”。然后将各组合用于训练，并使用交叉验证对表现进行评估。选取交叉验证结果最好的一个模型作为最优模型。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-8---&#20132;&#21449;&#39564;&#35777;">&#38382;&#39064; 8 - &#20132;&#21449;&#39564;&#35777;<a class="anchor-link" href="#&#38382;&#39064;-8---&#20132;&#21449;&#39564;&#35777;">&#182;</a></h3><ul>
<li>什么是K折交叉验证法（k-fold cross-validation）？</li>
<li><a href="http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html">GridSearchCV</a>是如何结合交叉验证来完成对最佳参数组合的选择的？</li>
<li><a href="http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html">GridSearchCV</a>中的<code>'cv_results_'</code>属性能告诉我们什么？</li>
<li>网格搜索时如果不使用交叉验证会有什么问题？交叉验证又是如何解决这个问题的？</li>
</ul>
<p><strong>提示：</strong> 在下面 fit_model函数最后加入 <code>print pd.DataFrame(grid.cv_results_)</code> 可以帮你查看更多信息。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-8---&#22238;&#31572;&#65306;">&#38382;&#39064; 8 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-8---&#22238;&#31572;&#65306;">&#182;</a></h3><p>首先，K折交叉验证是将训练数据集随机分为K份，依次取第0份到第k-1份中的1份作为验证集，其余的K-1份作为训练集，重复K次“训练-&gt;验证”的过程。将K次的平均得分作为验证结果。之所以要选取平均得分作为最后的结果，是因为能避免样本数量非常小的情况下，某些异常值对逆推断结论进行严重干扰等问题。其实K折交叉验证并不限于(K-1):1，也可以做(K-2):2，或者(K-3):3等等。</p>
<p>GridSearchCV实现了fit训练方法和score评分方法，同时根据传入的estimator参数类型的不同来实现“predict”, “predict_proba”, “decision_function”, “transform” and “inverse_transform”方法。根据给定的estimator自动进行交叉验证，通过调节每一个参数来跟踪评分结果，实际上，该过程代替了进行参数搜索时的for循环过程。</p>
<p>GridSearchCV中的cvresults返回的是一个masked ndarrays组成的字典，可以转换为DataFrame类型。包含若干参数，如超参数字典params，如mean_fit_time, std_fit_time, mean_score_time和std_score<em>time等以秒为单位的值，如param</em>开头的参数及对应的masked array等。</p>
<p>由于网格搜索仅仅依靠交叉验证来对各种穷举模型进行验证。如果不用交叉验证，网格搜索就得不到验证，有较大几率会出现过拟合的问题。使用交叉验证可降低出现过拟合的几率。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;-4&#65306;&#35757;&#32451;&#26368;&#20248;&#27169;&#22411;">&#32534;&#31243;&#32451;&#20064; 4&#65306;&#35757;&#32451;&#26368;&#20248;&#27169;&#22411;<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;-4&#65306;&#35757;&#32451;&#26368;&#20248;&#27169;&#22411;">&#182;</a></h3><p>在这个练习中，你将需要将所学到的内容整合，使用<strong>决策树算法</strong>训练一个模型。为了得出的是一个最优模型，你需要使用网格搜索法训练模型，以找到最佳的 <code>'max_depth'</code> 参数。你可以把<code>'max_depth'</code> 参数理解为决策树算法在做出预测前，允许其对数据提出问题的数量。决策树是<strong>监督学习算法</strong>中的一种。</p>
<p>在下方 <code>fit_model</code> 函数中，你需要做的是：</p>
<ol>
<li><strong>定义 <code>'cross_validator'</code> 变量</strong>: 使用 <code>sklearn.model_selection</code> 中的 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.KFold.html"><code>KFold</code></a> 创建一个交叉验证生成器对象;</li>
<li><strong>定义 <code>'regressor'</code> 变量</strong>: 使用  <code>sklearn.tree</code> 中的 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeRegressor.html"><code>DecisionTreeRegressor</code></a> 创建一个决策树的回归函数;</li>
<li><strong>定义 <code>'params'</code> 变量</strong>: 为 <code>'max_depth'</code> 参数创造一个字典，它的值是从1至10的数组;</li>
<li><strong>定义 <code>'scoring_fnc'</code> 变量</strong>: 使用 <code>sklearn.metrics</code> 中的 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.metrics.make_scorer.html"><code>make_scorer</code></a>  创建一个评分函数；
将 <code>‘performance_metric’</code> 作为参数传至这个函数中；</li>
<li><strong>定义 <code>'grid'</code> 变量</strong>: 使用 <code>sklearn.model_selection</code> 中的 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html"><code>GridSearchCV</code></a> 创建一个网格搜索对象；将变量<code>'regressor'</code>, <code>'params'</code>, <code>'scoring_fnc'</code>和 <code>'cross_validator'</code> 作为参数传至这个对象构造函数中；</li>
</ol>
<p>如果你对python函数的默认参数定义和传递不熟悉，可以参考这个MIT课程的<a href="http://cn-static.udacity.com/mlnd/videos/MIT600XXT114-V004200_DTH.mp4">视频</a>。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[11]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># TODO 4</span>

<span class="c1">#提示: 导入 &#39;KFold&#39; &#39;DecisionTreeRegressor&#39; &#39;make_scorer&#39; &#39;GridSearchCV&#39; </span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="kn">import</span> <span class="n">KFold</span>
<span class="kn">from</span> <span class="nn">sklearn.tree</span> <span class="kn">import</span> <span class="n">DecisionTreeRegressor</span>
<span class="kn">from</span> <span class="nn">sklearn.metrics</span> <span class="kn">import</span> <span class="n">make_scorer</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="kn">import</span> <span class="n">GridSearchCV</span>


<span class="k">def</span> <span class="nf">fit_model</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; 基于输入数据 [X,y]，利于网格搜索找到最优的决策树模型&quot;&quot;&quot;</span>
    
    <span class="n">cross_validator</span> <span class="o">=</span> <span class="n">KFold</span><span class="p">()</span>
    
    <span class="n">regressor</span> <span class="o">=</span> <span class="n">DecisionTreeRegressor</span><span class="p">()</span>

    <span class="n">params</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;max_depth&#39;</span><span class="p">:</span><span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">11</span><span class="p">)}</span>

    <span class="n">scoring_fnc</span> <span class="o">=</span> <span class="n">make_scorer</span><span class="p">(</span><span class="n">performance_metric</span><span class="p">)</span>

    <span class="n">grid</span> <span class="o">=</span> <span class="n">GridSearchCV</span><span class="p">(</span><span class="n">regressor</span><span class="p">,</span><span class="n">params</span><span class="p">,</span><span class="n">scoring_fnc</span><span class="p">,</span><span class="n">cv</span><span class="o">=</span><span class="n">cross_validator</span><span class="p">)</span>

    <span class="c1"># 基于输入数据 [X,y]，进行网格搜索</span>
    <span class="n">grid</span> <span class="o">=</span> <span class="n">grid</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>

    <span class="c1"># 返回网格搜索后的最优模型</span>
    <span class="k">return</span> <span class="n">grid</span><span class="o">.</span><span class="n">best_estimator_</span>

<span class="c1">#GridSearchCV?</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;-4&#65306;&#35757;&#32451;&#26368;&#20248;&#27169;&#22411;-&#65288;&#21487;&#36873;&#65289;">&#32534;&#31243;&#32451;&#20064; 4&#65306;&#35757;&#32451;&#26368;&#20248;&#27169;&#22411; &#65288;&#21487;&#36873;&#65289;<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;-4&#65306;&#35757;&#32451;&#26368;&#20248;&#27169;&#22411;-&#65288;&#21487;&#36873;&#65289;">&#182;</a></h3><p>在这个练习中，你将需要将所学到的内容整合，使用<strong>决策树算法</strong>训练一个模型。为了得出的是一个最优模型，你需要使用网格搜索法训练模型，以找到最佳的 <code>'max_depth'</code> 参数。你可以把<code>'max_depth'</code> 参数理解为决策树算法在做出预测前，允许其对数据提出问题的数量。决策树是<strong>监督学习算法</strong>中的一种。</p>
<p>在下方 <code>fit_model</code> 函数中，你需要做的是：</p>
<ul>
<li>遍历参数<code>‘max_depth’</code>的可选值 1～10，构造对应模型</li>
<li>计算当前模型的交叉验证分数</li>
<li>返回最优交叉验证分数对应的模型</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[12]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># TODO 4 可选</span>

<span class="sd">&#39;&#39;&#39;</span>
<span class="sd">不允许使用 DecisionTreeRegressor 以外的任何 sklearn 库</span>

<span class="sd">提示: 你可能需要实现下面的 cross_val_score 函数</span>

<span class="sd">def cross_val_score(estimator, X, y, scoring = performance_metric, cv=3):</span>
<span class="sd">    &quot;&quot;&quot; 返回每组交叉验证的模型分数的数组 &quot;&quot;&quot;</span>
<span class="sd">    scores = [0,0,0]</span>
<span class="sd">    return scores</span>
<span class="sd">&#39;&#39;&#39;</span>

<span class="k">def</span> <span class="nf">fit_model2</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; 基于输入数据 [X,y]，利于网格搜索找到最优的决策树模型&quot;&quot;&quot;</span>
    
    <span class="c1">#最优交叉验证分数对应的最优模型</span>
    <span class="n">best_estimator</span> <span class="o">=</span> <span class="bp">None</span>
    
    <span class="k">return</span> <span class="n">best_estimator</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-9---&#26368;&#20248;&#27169;&#22411;">&#38382;&#39064; 9 - &#26368;&#20248;&#27169;&#22411;<a class="anchor-link" href="#&#38382;&#39064;-9---&#26368;&#20248;&#27169;&#22411;">&#182;</a></h3><p><em>最优模型的最大深度（maximum depth）是多少？此答案与你在<strong>问题 6</strong>所做的猜测是否相同？</em></p>
<p>运行下方区域内的代码，将决策树回归函数代入训练数据的集合，以得到最优化的模型。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[13]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 基于训练数据，获得最优模型</span>
<span class="n">optimal_reg</span> <span class="o">=</span> <span class="n">fit_model</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>

<span class="c1"># 输出最优模型的 &#39;max_depth&#39; 参数</span>
<span class="k">print</span> <span class="s2">&quot;Parameter &#39;max_depth&#39; is {} for the optimal model.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">optimal_reg</span><span class="o">.</span><span class="n">get_params</span><span class="p">()[</span><span class="s1">&#39;max_depth&#39;</span><span class="p">])</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Parameter &#39;max_depth&#39; is 4 for the optimal model.
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-9---&#22238;&#31572;&#65306;">&#38382;&#39064; 9 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-9---&#22238;&#31572;&#65306;">&#182;</a></h3><p>最优模型的最大深度是4，与在问题6中所做的猜测3不同。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#31532;&#20845;&#27493;.-&#20570;&#20986;&#39044;&#27979;">&#31532;&#20845;&#27493;. &#20570;&#20986;&#39044;&#27979;<a class="anchor-link" href="#&#31532;&#20845;&#27493;.-&#20570;&#20986;&#39044;&#27979;">&#182;</a></h2><p>当我们用数据训练出一个模型，它现在就可用于对新的数据进行预测。在决策树回归函数中，模型已经学会对新输入的数据<em>提问</em>，并返回对<strong>目标变量</strong>的预测值。你可以用这个预测来获取数据未知目标变量的信息，这些数据必须是不包含在训练数据之内的。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-10---&#39044;&#27979;&#38144;&#21806;&#20215;&#26684;">&#38382;&#39064; 10 - &#39044;&#27979;&#38144;&#21806;&#20215;&#26684;<a class="anchor-link" href="#&#38382;&#39064;-10---&#39044;&#27979;&#38144;&#21806;&#20215;&#26684;">&#182;</a></h3><p>想像你是一个在波士顿地区的房屋经纪人，并期待使用此模型以帮助你的客户评估他们想出售的房屋。你已经从你的三个客户收集到以下的资讯:</p>
<table>
<thead><tr>
<th style="text-align:center">特征</th>
<th style="text-align:center">客戶 1</th>
<th style="text-align:center">客戶 2</th>
<th style="text-align:center">客戶 3</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">房屋内房间总数</td>
<td style="text-align:center">5 间房间</td>
<td style="text-align:center">4 间房间</td>
<td style="text-align:center">8 间房间</td>
</tr>
<tr>
<td style="text-align:center">社区贫困指数（％被认为是贫困阶层）</td>
<td style="text-align:center">17%</td>
<td style="text-align:center">32%</td>
<td style="text-align:center">3%</td>
</tr>
<tr>
<td style="text-align:center">邻近学校的学生-老师比例</td>
<td style="text-align:center">15：1</td>
<td style="text-align:center">22：1</td>
<td style="text-align:center">12：1</td>
</tr>
</tbody>
</table>
<p><em>你会建议每位客户的房屋销售的价格为多少？从房屋特征的数值判断，这样的价格合理吗？为什么？</em></p>
<p><strong>提示：</strong>用你在<strong>分析数据</strong>部分计算出来的统计信息来帮助你证明你的答案。</p>
<p>运行下列的代码区域，使用你优化的模型来为每位客户的房屋价值做出预测。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[14]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 生成三个客户的数据</span>
<span class="n">client_data</span> <span class="o">=</span> <span class="p">[[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">15</span><span class="p">],</span> <span class="c1"># 客户 1</span>
               <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">22</span><span class="p">],</span> <span class="c1"># 客户 2</span>
               <span class="p">[</span><span class="mi">8</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">12</span><span class="p">]]</span>  <span class="c1"># 客户 3</span>

<span class="c1"># 进行预测</span>
<span class="n">predicted_price</span> <span class="o">=</span> <span class="n">optimal_reg</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">client_data</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">price</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">predicted_price</span><span class="p">):</span>
    <span class="k">print</span> <span class="s2">&quot;Predicted selling price for Client {}&#39;s home: ${:,.2f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="n">price</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Predicted selling price for Client 1&#39;s home: $406,420.00
Predicted selling price for Client 2&#39;s home: $222,770.27
Predicted selling price for Client 3&#39;s home: $943,854.55
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-10---&#22238;&#31572;&#65306;">&#38382;&#39064; 10 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-10---&#22238;&#31572;&#65306;">&#182;</a></h3><p>为第一位、第二位、第三位客户预测的价格分别是\$406,420.00，\$222,770.27，\$943,854.55。从房屋特征的数值判断是合理的。第三位客户房屋内房间数8间最多，总价理应高一些，并且该社区贫困指数很低，意味着大家消费能力不低，价格高点可接受，两方面综合考虑，第三位房屋价格自然应当最高。第二位客户的房屋前两个特征情况正好与第三位相反，理应最低。第一位客户前两个房屋特征情况处于两者之间，所以房屋价格也应当处于两者之间。因此这些预测价格是合理的。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;-5">&#32534;&#31243;&#32451;&#20064; 5<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;-5">&#182;</a></h3><p>你刚刚预测了三个客户的房子的售价。在这个练习中，你将用你的最优模型在整个测试数据上进行预测, 并计算相对于目标变量的决定系数 R<sup>2</sup>的值**。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[15]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1">#TODO 5</span>

<span class="c1"># 提示：你可能需要用到 X_test, y_test, optimal_reg, performance_metric</span>
<span class="c1"># 提示：你可能需要参考问题10的代码进行预测</span>
<span class="c1"># 提示：你可能需要参考问题3的代码来计算R^2的值</span>
<span class="n">predicted_price</span><span class="o">=</span><span class="n">optimal_reg</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_test</span><span class="p">)</span>
<span class="c1">#print predicted_price</span>
<span class="n">r2</span> <span class="o">=</span> <span class="n">performance_metric</span><span class="p">(</span><span class="n">y_test</span><span class="p">,</span><span class="n">predicted_price</span><span class="p">)</span>

<span class="k">print</span> <span class="s2">&quot;Optimal model has R^2 score {:,.2f} on test data&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">r2</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Optimal model has R^2 score 0.80 on test data
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;11---&#20998;&#26512;&#20915;&#23450;&#31995;&#25968;">&#38382;&#39064;11 - &#20998;&#26512;&#20915;&#23450;&#31995;&#25968;<a class="anchor-link" href="#&#38382;&#39064;11---&#20998;&#26512;&#20915;&#23450;&#31995;&#25968;">&#182;</a></h3><p>你刚刚计算了最优模型在测试集上的决定系数，你会如何评价这个结果？</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;11---&#22238;&#31572;">&#38382;&#39064;11 - &#22238;&#31572;<a class="anchor-link" href="#&#38382;&#39064;11---&#22238;&#31572;">&#182;</a></h3><p>决定系数是相关系数的平方，意义是变量A可以解释变量B方差的多少。这里R2指的是在最佳拟合线中可以解释的比例。上面计算出来的R2=0.8，说明有80%'MEDV'平均房价的变化可以由'RM'、'LSTAT'、'PTRATIO'三个因素的这条最佳拟合线来解释，剩余20%受其他因素影响。这个结果很不错。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#27169;&#22411;&#20581;&#22766;&#24615;">&#27169;&#22411;&#20581;&#22766;&#24615;<a class="anchor-link" href="#&#27169;&#22411;&#20581;&#22766;&#24615;">&#182;</a></h3><p>一个最优的模型不一定是一个健壮模型。有的时候模型会过于复杂或者过于简单，以致于难以泛化新增添的数据；有的时候模型采用的学习算法并不适用于特定的数据结构；有的时候样本本身可能有太多噪点或样本过少，使得模型无法准确地预测目标变量。这些情况下我们会说模型是欠拟合的。</p>
<h3 id="&#38382;&#39064;-12---&#27169;&#22411;&#20581;&#22766;&#24615;">&#38382;&#39064; 12 - &#27169;&#22411;&#20581;&#22766;&#24615;<a class="anchor-link" href="#&#38382;&#39064;-12---&#27169;&#22411;&#20581;&#22766;&#24615;">&#182;</a></h3><p>模型是否足够健壮来保证预测的一致性？</p>
<p><strong>提示</strong>: 执行下方区域中的代码，采用不同的训练和测试集执行 <code>fit_model</code> 函数10次。注意观察对一个特定的客户来说，预测是如何随训练数据的变化而变化的。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[16]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 请先注释掉 fit_model 函数里的所有 print 语句</span>
<span class="n">vs</span><span class="o">.</span><span class="n">PredictTrials</span><span class="p">(</span><span class="n">features</span><span class="p">,</span> <span class="n">prices</span><span class="p">,</span> <span class="n">fit_model</span><span class="p">,</span> <span class="n">client_data</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Trial 1: $391,183.33
Trial 2: $411,417.39
Trial 3: $415,800.00
Trial 4: $428,316.00
Trial 5: $413,334.78
Trial 6: $411,931.58
Trial 7: $399,663.16
Trial 8: $407,232.00
Trial 9: $402,531.82
Trial 10: $413,700.00

Range in prices: $37,132.67
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-12---&#22238;&#31572;&#65306;">&#38382;&#39064; 12 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-12---&#22238;&#31572;&#65306;">&#182;</a></h3><p>10次预测的结果差异都在410万左右，最大值与最小值差别为28653，误差率为7%左右，差别不大，可认为该模型足够健壮。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-13---&#23454;&#29992;&#24615;&#25506;&#35752;">&#38382;&#39064; 13 - &#23454;&#29992;&#24615;&#25506;&#35752;<a class="anchor-link" href="#&#38382;&#39064;-13---&#23454;&#29992;&#24615;&#25506;&#35752;">&#182;</a></h3><p><em>简单地讨论一下你建构的模型能否在现实世界中使用？</em></p>
<p>提示：回答以下几个问题，并给出相应结论的理由：</p>
<ul>
<li><em>1978年所采集的数据，在已考虑通货膨胀的前提下，在今天是否仍然适用？</em></li>
<li><em>数据中呈现的特征是否足够描述一个房屋？</em></li>
<li><em>在波士顿这样的大都市采集的数据，能否应用在其它乡镇地区？</em></li>
<li><em>你觉得仅仅凭房屋所在社区的环境来判断房屋价值合理吗？</em></li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-13---&#22238;&#31572;&#65306;">&#38382;&#39064; 13 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-13---&#22238;&#31572;&#65306;">&#182;</a></h3><p>首先，在今天不适用，因为30年过去了，经济迅猛发展，人们的消费观念发生了巨大的变化。</p>
<p>其次，根据上面的计算，数据中呈现的特征只能描述80%，不算足够，房屋的价格还和年限、家具档次等相关。</p>
<p>再次，不能应用在其它乡镇地区，大都市的人们向往着紧张忙碌的白领生活，乡镇地区向往的是宁静祥和的生活。</p>
<p>最后，仅仅凭房屋所在社区的环境来判断房屋价值是不合理的，房屋的价格跟房屋的质量，房屋的新旧程度，房屋的装修程度有关系。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#21487;&#36873;&#38382;&#39064;---&#39044;&#27979;&#21271;&#20140;&#25151;&#20215;">&#21487;&#36873;&#38382;&#39064; - &#39044;&#27979;&#21271;&#20140;&#25151;&#20215;<a class="anchor-link" href="#&#21487;&#36873;&#38382;&#39064;---&#39044;&#27979;&#21271;&#20140;&#25151;&#20215;">&#182;</a></h2><p>（本题结果不影响项目是否通过）通过上面的实践，相信你对机器学习的一些常用概念有了很好的领悟和掌握。但利用70年代的波士顿房价数据进行建模的确对我们来说意义不是太大。现在你可以把你上面所学应用到北京房价数据集中 <code>bj_housing.csv</code>。</p>
<p>免责声明：考虑到北京房价受到宏观经济、政策调整等众多因素的直接影响，预测结果仅供参考。</p>
<p>这个数据集的特征有：</p>
<ul>
<li>Area：房屋面积，平方米</li>
<li>Room：房间数，间</li>
<li>Living: 厅数，间</li>
<li>School: 是否为学区房，0或1</li>
<li>Year: 房屋建造时间，年</li>
<li>Floor: 房屋所处楼层，层</li>
</ul>
<p>目标变量：</p>
<ul>
<li>Value: 房屋人民币售价，万</li>
</ul>
<p>你可以参考上面学到的内容，拿这个数据集来练习数据分割与重排、定义衡量标准、训练模型、评价模型表现、使用网格搜索配合交叉验证对参数进行调优并选出最佳参数，比较两者的差别，最终得出最佳模型对验证集的预测分数。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[17]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># TODO 6</span>

<span class="c1"># 你的代码</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;14---&#21271;&#20140;&#25151;&#20215;&#39044;&#27979;">&#38382;&#39064;14 - &#21271;&#20140;&#25151;&#20215;&#39044;&#27979;<a class="anchor-link" href="#&#38382;&#39064;14---&#21271;&#20140;&#25151;&#20215;&#39044;&#27979;">&#182;</a></h3><p>你成功的用新的数据集构建了模型了吗？他能对测试数据进行验证吗？它的表现是否符合你的预期？交叉验证是否有助于提升你模型的表现？</p>
<p><strong>提示：</strong>如果你是从零开始构建机器学习的代码会让你一时觉得无从下手。这时不要着急，你要做的只是查看之前写的代码，把每一行都看明白，然后逐步构建你的模型。当中遇到什么问题也可以在我们论坛寻找答案。也许你会发现你所构建的模型的表现并没有达到你的预期，这说明机器学习并非是一项简单的任务，构建一个表现良好的模型需要长时间的研究和测试。这也是我们接下来的课程中会逐渐学到的。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;14---&#22238;&#31572;">&#38382;&#39064;14 - &#22238;&#31572;<a class="anchor-link" href="#&#38382;&#39064;14---&#22238;&#31572;">&#182;</a></h3>
</div>
</div>
</div>
    </div>
  </div>
</body>

 


</html>
